Carla Ferrara esercitazione word could
Imports System.Drawing.Drawing2D
Public Class Form1
Public b As Bitmap
Public g As Graphics
Dim listaparoleno As New Dictionary(Of String, Boolean)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
listaparoleno.Add("il", Nothing)
listaparoleno.Add("la", Nothing)
listaparoleno.Add("lo", Nothing)
listaparoleno.Add("i", Nothing)
listaparoleno.Add("le", Nothing)
listaparoleno.Add("di", Nothing)
listaparoleno.Add("a", Nothing)
listaparoleno.Add("da", Nothing)
listaparoleno.Add("in", Nothing)
listaparoleno.Add("con", Nothing)
listaparoleno.Add("su", Nothing)
listaparoleno.Add("per", Nothing)
listaparoleno.Add("tra", Nothing)
listaparoleno.Add("fra", Nothing)
listaparoleno.Add("un", Nothing)
listaparoleno.Add("una", Nothing)
listaparoleno.Add("uno", Nothing)
listaparoleno.Add("del", Nothing)
listaparoleno.Add("dello", Nothing)
listaparoleno.Add("degli", Nothing)
listaparoleno.Add("dei", Nothing)
listaparoleno.Add("alle", Nothing)
listaparoleno.Add("agli", Nothing)
listaparoleno.Add("dai", Nothing)
listaparoleno.Add("fa", Nothing)
listaparoleno.Add("ci", Nothing)
listaparoleno.Add("si", Nothing)
listaparoleno.Add("e", Nothing)
listaparoleno.Add("o", Nothing)
Try
Dim Corpus As String = Me.RichTextBox1.Text
Dim corpus_N As String = Corpus.ToLower.Replace(",", " ").Replace(vbCrLf, " ").Replace(" ", " ").Replace(".", " ").Replace("!", " ").Replace("?", " ").Replace(")", " ").Replace("(", " ").Replace("-", " ").Replace("'", " ")
Dim nome() As String = corpus_N.Split((vbCrLf & " ").ToCharArray, StringSplitOptions.RemoveEmptyEntries)
Dim minimadimensionefont As Integer = 10
Dim massimadimensionefont As Integer = 50
Dim ListaParoleDiverse As New SortedList(Of String, Boolean)
For Each parola As String In nome
If Not listaparoleno.ContainsKey(parola) Then
If Not ListaParoleDiverse.ContainsKey(parola) Then ListaParoleDiverse.Add(parola, Nothing)
End If
Next
b = New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height)
g = Graphics.FromImage(b)
g.SmoothingMode = SmoothingMode.HighQuality
g.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
'RANDOM
Dim RND As New Random
Dim NumeroCasuale0_1 As Double = RND.NextDouble
Dim Raggio As Double = b.Height / 3
Dim colorNames As String() = System.Enum.GetNames(GetType(KnownColor))
Dim lstColors As New List(Of String)(colorNames)
Dim PathRettangoli As New GraphicsPath
Do While ListaParoleDiverse.Count > 0
Dim Parola As String = ListaParoleDiverse.Keys.Item(0)
Dim frequenza As Integer = 1
For Each word As String In nome
If word = Parola Then
frequenza += 1
End If
Next
Dim dimensione As Single = 4 * frequenza
Dim ANgoloCasuale As Double = RND.NextDouble * 2 * Math.PI
Dim DIstanzaCasuale As Double = RND.NextDouble * Raggio
Dim x As Double = b.Width / 2 + Math.Cos(ANgoloCasuale) * DIstanzaCasuale
Dim y As Double = b.Height / 2 + Math.Sin(ANgoloCasuale) * DIstanzaCasuale
Dim IndiceCasuale As Integer = RND.Next(0, lstColors.Count - 1)
Dim COloreCasuale As Color = System.Drawing.Color.FromName(lstColors(IndiceCasuale))
Dim MyFont As Font = New Font("arial", dimensione, FontStyle.Italic)
Dim SIzeFString As SizeF = g.MeasureString(Parola, MyFont)
Dim RettangoloStringa As New Rectangle(New Point(x, y), SIzeFString.ToSize)
Dim R As New Region(PathRettangoli)
If Not R.IsVisible(RettangoloStringa) Then
g.DrawString(Parola, MyFont, New SolidBrush(COloreCasuale), x, y)
ListaParoleDiverse.RemoveAt(0)
PathRettangoli.AddRectangle(RettangoloStringa)
End If
Me.PictureBox1.Image = b
Application.DoEvents()
Loop
Catch exc As Exception
MsgBox("Errore non previsto" & vbCrLf & exc.Message)
End Try
Me.PictureBox1.Image = b
End Sub
Private Sub Form1_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
Nessun commento:
Posta un commento
Nota. Solo i membri di questo blog possono postare un commento.