limi18
Messages postés14Date d'inscriptionjeudi 24 février 2011StatutMembreDernière intervention28 mars 2019
-
28 avril 2011 à 03:07
limi18
Messages postés14Date d'inscriptionjeudi 24 février 2011StatutMembreDernière intervention28 mars 2019
-
28 avril 2011 à 23:48
bonjour à tous, je voudrais réaliser un flocon d'ordre n en java; actuellement, j'ai eu en code permettant de le faire en vb. merci
A voir également:
Comment dessiner un flocon
Comment dessiner un flocon de neige - Meilleures réponses
limi18
Messages postés14Date d'inscriptionjeudi 24 février 2011StatutMembreDernière intervention28 mars 2019 28 avril 2011 à 23:48
merci bien pour vos reponses, seb576, ton lien m'a été d'une grande utilité et je vais essayer de le réadapter. voici le code en VB.
Private Sub LaunchFl()
* ' Initialise le flocon (triangle) et lance la procédure récursive
*
* 'Efface la feuille
* Form1.Picture = LoadPicture()
* Dim a(2) As Point, b(2) As Point
*
* 'Défini les coordonnées des segments initiaux
* a(0).x = 0.25 * Form1.Width
* a(0).y = Form1.Height - 0.3 * Form1.Height
* b(1).x = Form1.Width - 0.25 * Form1.Width
* b(1).y = Form1.Height - 0.3 * Form1.Height
* b(0) = Sommet(a(0), b(1))
* a(1) = b(0)
* a(2) = b(1)
* b(2) = a(0)
*
* 'Appelle la fonction récursive pour chaque segment
* For t = 0 To 2
* Flocon a(t), b(t), Val(Text1.Text)
* Next
* End Sub
*
* Private Sub Flocon(a As Point, b As Point, n)
* 'procédure récursive pour dessiner la fractale de Von Koch
* Dim c As Point, d As Point, e As Point, Couleur As Long, tt
*
* Couleur = RGB(255, 255, 0)
*
* 'Attends une seconde si l'option est cochée
* If Check1.Value = vbChecked Then
* tt = Time
* While tt = Time
* tt = Time
* DoEvents
* Wend
* End If
*
* If n = 0 Then
* 'Condition de sortie de la récursivité
* Form1.Line (a.x, a.y)-(b.x, b.y), Couleur
* Else
* 'Appel récursif
* c = Tiers(a, b)
* d = Tiers(b, a)
* e = Sommet(c, d)
* Flocon a, c, n - 1
* Flocon c, e, n - 1
* Flocon e, d, n - 1
* Flocon d, b, n - 1
* End If
* End Sub
*
* Private Function Sommet(a As Point, b As Point) As Point
* 'Calcule le sommet du triangle équilatéral
* 'dont la base est définie par 2 points
* Sommet.x = (b.x + a.x) / 2 + (b.y - a.y) * Racine3Sur2
* Sommet.y = (b.y + a.y) / 2 - (b.x - a.x) * Racine3Sur2
* End Function
*
* Private Function Milieu(a As Point, b As Point) As Point
* 'Calcule le milieu d'un segment
* Milieu.x = (b.x + a.x) / 2
* Milieu.y = (b.y + a.y) / 2
* End Function
*
* Private Function Tiers(a As Point, b As Point) As Point
* 'Calcul le premier tiers d'un segment
* 'Attention: Le résultat est orienté
* Tiers.x = (b.x - a.x) / 3 + a.x
* Tiers.y = (b.y - a.y) / 3 + a.y
* End Function
*
* Private Sub Form_Resize()
* 'Si la fenêtre est redimensionnée, mise à l'échelle
* LaunchFl
* End Sub
*
* Private Sub Text1_KeyPress(KeyAscii As Integer)
* 'Si l'utilisateur appuie sur "Entrée",
* 'contrôler la validité de la saisie et tracer le flocon
* If KeyAscii = 13 Then
* If Val(Text1.Text) < 0 Or Val(Text1.Text) > 9 Then
* MsgBox "Seules les valeurs comprises entre 0 et 9 sont
acceptées.", vbOKOnly + vbExclamation, "Attention !"
* Exit Sub
* End If
* LaunchFl
* End If
* End Sub