giovedì 25 novembre 2010

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.