Générations de Fractales: Casio,Sharp,Sanco,Hp,Amstrad...

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5600
Inscription : 26 mars 2009 14:07
Localisation : Ile de France
Contact :

Générations de Fractales: Casio,Sharp,Sanco,Hp,Amstrad...

Message par ledudu » 18 nov. 2010 03:12

Fractales, derrière ce mot se cachent de très belles figures naturelles ou géométriques.
Je ne vais pas disserter sur ce sujet, google fait ça très bien : exemple. En plus, les graphiques parlent d'eux-mêmes.

J'ai trouvé que c'était un excellent exercice pour tester le tout nouveau programme de conversion de marcus et en même temps les possibilités de programmation et d'affichage de la FX-8000g.

Le code est assez court quoiqu'il m'ait demandé quelques heures de recherche, en particulier la formule de récurrence.
Il permet de générer 4 niveaux de fractales, le cinquième niveau est incompatible avec la définition de l'écran (et avec l'heure tardive).

Les variables :
-P : niveau ou profondeur
-N : segment courant à dessiner
-D longueur de la base du triangle initial
-(X,Y) : coordonnées su sommet du segment courant
-A : angle du segment courant par rapport à l'horizontale.
-S : signe de la rotation du segment courant par rapport au segment précédent (-2 ou +1)
Dans le calcul de Y, (1.5) est le rapport de taille de l'écran (largeur / hauteur), indispensable pour ne pas déformer la figure.

Principe : tous les segments ont la même longueur, je travaille sur l'angle du segment courant avec l'horizontale. Avec cet angle et la longueur, j'utilise COS et SIN pour tracer le segment. La difficulté de l'exercice consiste donc uniquement à comprendre comment varie cet angle.

Code : Tout sélectionner

Version 1 (4 niveaux):
Cls:Range 0,1,0,0,1,0:Deg:30->A
?->P:5->N
0.55->D
0.15->X:0.50->Y
Plot X,Y
Lbl 0
(-)2->S
P>=1=>Frac(N/2)<>0=>1->S
P>=2=>Frac(N/8)=0=>1->S
P>=3=>Frac((N+12)/32)=0=>1->S
N+1->N
X+Dcos(A)/(3^P)->X
Y+1.5*Dsin(A)/(3^P)->Y
A+60S->A
Plot X,Y:Line 
N<3*4^P+5=>Goto 0
191 octets

Version 3 multi-niveaux
Cls:Range 0,1,0,0,1,0:Deg:30->A
?->P:3*4^P->N
0.65/(3^P)->D
0.15->X:0.50->Y
Plot X,Y
Lbl 0
(-)2->S
P->I:Lbl 1
(4^I)/2->J
Frac((N-1+j/2)/j)=0=>1->S
DSZ I:Goto 1
X+Dcos(A)->X
Y+1.5Dsin(A)->Y
A+60S->A
Plot X,Y:Line 
Dsz N:Goto 0
160 octets 
Remarque : (-) est le signe moins (différent de la soustraction sur fx-8000g)


Et voici le résultat :

Niveau 1 (P=0 - 3 segments)
Image
Niveau 2 (P=1 - 12 segments)
Image
Niveau 3 (P=2 - 48 segments)
Image
Niveau 4 (P=3 - 192 segments)
Image

La conversion au Basic est assez simple.
Attention, le programme ne fonctionne pas au niveau suivant sans trouver le test [P>=4].

Bonnes fractales !
Dernière édition par ledudu le 25 nov. 2010 00:22, édité 18 fois.

Avatar de l’utilisateur
kweeky
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1640
Inscription : 05 oct. 2007 19:46
Localisation : Pas très loin de Bordeaux

Re: Génération de fractales sous FX-8000g

Message par kweeky » 18 nov. 2010 11:12

Merci ledudu

Je connais bien le flocon de Von Koch, c'est un des premiers programmes "sérieux" que j'avais fait en Basic sur Amstrad CPC.

Sinon j'avais aussi joué avec les ensembles de Julia et Mandelbrot sur HP-48SX et HP-49G, et je faisais des concours de vitesse ! Bon, ça tenait plus de la course d'escargots qu'autre chose ! :lol:

Je m'en vais essayer sur ma 8500 ce soir.

@+

Avatar de l’utilisateur
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2483
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Génération de fractales sous FX-8000g

Message par C.Ret » 18 nov. 2010 16:12

Attention, il manquait un retour-chario avant l'incrément N+1->N

C'est corrigé maintenant
Dernière édition par C.Ret le 18 nov. 2010 21:52, édité 1 fois.
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | HP-28S + HP82240A | TI-74 BasiCalc | HP-41C + (2 memory + stat + IR) | HP-15C | HP Prime Color Touchscreen Graphing Calculator| TI-92 II | CASIO fx-602p + FA-1 | HP-71B 64K+JPC-ROM+HPIL+card reader . Sommaire des M.P.O..

Avatar de l’utilisateur
Marcus von Cube
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 914
Inscription : 20 avr. 2006 13:48
Localisation : Wehrheim, Allemagne
Contact :

Re: Génération de fractales sous FX-8000g

Message par Marcus von Cube » 18 nov. 2010 16:58

Ledudu, tu peux éviter les axes a gauche et en bas si tu change le Range et les coordonnées de Plot :

Range 1,2,0,1,2,0

Plot X+1,Y+1 (deux fois)

Avatar de l’utilisateur
Marcus von Cube
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 914
Inscription : 20 avr. 2006 13:48
Localisation : Wehrheim, Allemagne
Contact :

Re: Génération de fractales sous FX-8000g

Message par Marcus von Cube » 18 nov. 2010 17:01

C.Ret a écrit :Attention, il manque un retour-chario avant l'incrément n+1->N
C'est peut-être un probleme de ma soft. Ledudu, peux-tu m'envoyer le WAV ?

Avatar de l’utilisateur
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5600
Inscription : 26 mars 2009 14:07
Localisation : Ile de France
Contact :

Re: Génération de fractales sous FX-8000g

Message par ledudu » 18 nov. 2010 17:15

Salut,
Marcus von Cube a écrit :
C.Ret a écrit :Attention, il manque un retour-chario avant l'incrément n+1->N
C'est peut-être un probleme de ma soft. Ledudu, peux-tu m'envoyer le WAV ?
Merci C.RET, j'ai corrigé mon post.
Marcus, je vérifie le fichier ce soir et t'envoie le wav si problème. Merci pour le truc sur les axes.
kweeky a écrit :Bon, ça tenait plus de la course d'escargots qu'autre chose !
Sur la fx-8000g, les temps de réponse ne sont pas bons bien sûr. Le plus perturbant est l'affichage clignotant pendant la génération du graphique. Dommage qu'on ne puisse pas rester sur la fenêtre graphique pendant l'exécution.
a+

Avatar de l’utilisateur
Woodstock
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1969
Inscription : 17 mai 2008 11:19
Localisation : Au fin fond du Santerre ...

Re: Génération de fractales sous FX-8000g

Message par Woodstock » 18 nov. 2010 19:46

ledudu a écrit :La conversion au Basic est assez simple.
Pour le PC-1500 et sa CE-150 : "Il neige dans le PC-1500", dans l'Ordinateur de Poche n°16 page 26 (jusqu'à l'ordre 5 inclus). C'est d'ailleurs un excellent test de table traçante : si le polygone se referme, c'est que le mécanisme est vraiment OK...
I'm the operator
Of my pocket calculator
I am adding
And substracting...
(Kraftwerk, Computer World, 1981)

Avatar de l’utilisateur
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5600
Inscription : 26 mars 2009 14:07
Localisation : Ile de France
Contact :

Re: Génération de fractales sous FX-8000g

Message par ledudu » 18 nov. 2010 20:26

Bonsoir,
Woodstock a écrit :Pour le PC-1500 et sa CE-150 : "Il neige dans le PC-1500", dans l'Ordinateur de Poche n°16 page 26 (jusqu'à l'ordre 5 inclus).
Je suis allé le (re)lire, ça m'a rappelé des souvenirs. L'algorithme utilisé est très différent : en effet, il doit précalculer (par récurrence) les coordonnées euclidiennes de tous les points - en se servant donc des coordonnées du niveau précédent - avant de lancer l'impression pas à pas.

Je raisonne uniquement à niveau donné en coordonnées angulaires et trace chaque segment comme on tracerait la fractale à la main sans lever le stylo. L'avantage c'est que je n'ai pas besoin de RAM, l'algorithme de l'OP nécessite près de 400 variables au niveau 4 (384 pour les coordonnées + la gestion). J'en utilise 7 :wink:

Programme FX : 26 instructions
Programme OP : 80 instructions (à peu près)

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: Génération de fractales sous FX-8000g

Message par charognard » 18 nov. 2010 21:15

j'ai essayé sur ma 7000G
ça lag ton truc ;)
il n'y a pas un moyen pour rester statique en mode graph ?

Avatar de l’utilisateur
kweeky
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1640
Inscription : 05 oct. 2007 19:46
Localisation : Pas très loin de Bordeaux

Re: Génération de fractales sous FX-8000g

Message par kweeky » 18 nov. 2010 21:44

charognard a écrit :il n'y a pas un moyen pour rester statique en mode graph ?
Pas que je sache. La seule façon que j'avais trouvé pour limiter un peu l'effet "flicotement" lorsque je faisais des tracés pour des jeux, c'est d'abord "d'effacer" l'écran texte (en affichant une série de " ") avant de lancer le tracé. ça clignote toujours, mais ça fait moins moche que l'alternance texte / graphique.

Autre limitation très gênante de ces modèles, en mode graphique, l'absence de UNPLOT. Si tu veux effacer un seul point, tu les effaces tous ! :cry:

Avatar de l’utilisateur
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7180
Inscription : 31 janv. 2008 15:24
Localisation : Banlieue Paârisienne
Contact :

Re: Génération de fractales sous FX-8000g

Message par gege » 18 nov. 2010 23:34

Bonne idée de programme, mais je suis presque sûr qu'on peut faire ça en récursif sans cosinus ni sinus.
Je m'y colle.
A bientôt,
G.E.

Avatar de l’utilisateur
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5600
Inscription : 26 mars 2009 14:07
Localisation : Ile de France
Contact :

Re: Génération de fractales sous FX-8000g

Message par ledudu » 19 nov. 2010 01:12

Salut gégé
gege a écrit :Bonne idée de programme
Merci !
gege a écrit :mais je suis presque sûr qu'on peut faire ça en récursif sans cosinus ni sinus.
Je m'y colle.
Il est fou ce gégé :wink: :lol:
Tiens-nous au courant.
a+

Avatar de l’utilisateur
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5600
Inscription : 26 mars 2009 14:07
Localisation : Ile de France
Contact :

Re: Génération de fractales sous FX-8000g

Message par ledudu » 19 nov. 2010 01:14

charognard a écrit :j'ai essayé sur ma 7000G
C'est une Sharp ? 8)
charognard a écrit :ça lag ton truc ;)il n'y a pas un moyen pour rester statique en mode graph
Ouais je sais c'est ch...
Ca s'adapte pas sur l'El-9000 ?
Dernière édition par ledudu le 19 nov. 2010 01:31, édité 1 fois.

Avatar de l’utilisateur
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5600
Inscription : 26 mars 2009 14:07
Localisation : Ile de France
Contact :

Re: Génération de fractales sous FX-8000g

Message par ledudu » 19 nov. 2010 01:40

Marcus von Cube a écrit :C'est peut-être un probleme de ma soft. Ledudu, peux-tu m'envoyer le WAV ?
Non le fichier est bon, j'ai planté mon copier coller (si c'est dur un copier coller...) :?

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: Génération de fractales sous FX-8000g

Message par charognard » 19 nov. 2010 09:32

ledudu a écrit :
charognard a écrit :j'ai essayé sur ma 7000G
C'est une Sharp ? 8)
charognard a écrit :ça lag ton truc ;)il n'y a pas un moyen pour rester statique en mode graph
Ouais je sais c'est ch...
Ca s'adapte pas sur l'El-9000 ?
si bien sur !
je ferais l'adap ce soir

Répondre

Revenir vers « Tous les Pockets »