Flocon [Résolu]

Signaler
Messages postés
14
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
28 mars 2019
-
limi18
Messages postés
14
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
28 mars 2019
-
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

5 réponses


Peux-tu preciser ce que tu veux dire par "flocon d'ordre n" ?


-- Pylouq : jongleur de clavier AZERTY et de clavier QWERTZ --
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
271
Si tu as le code en VB, ca ne devrait pas être bien compliqué de transposer ca en java ...

Quelle est ta question, quel est ton problème ?
Messages postés
43
Date d'inscription
mercredi 17 novembre 2010
Statut
Membre
Dernière intervention
3 juin 2012
1
Bonjour,

c'est pas trop dur de chercher sur le net :

http://hipercom.inria.fr/~viennot/enseignement/x9900/td2/Flocon.java

Retouche le un peu pour fixer à n ton flocon.

Bonne journée.

A la limite poste ton code en VB sil n'est pas trop long pour qu'on voit à quoi cela ressemble.


-- Pylouq : jongleur de clavier AZERTY et de clavier QWERTZ --
Messages postés
14
Date d'inscription
jeudi 24 février 2011
Statut
Membre
Dernière intervention
28 mars 2019

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