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 du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7148
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

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

Message par gege »

Oui, la 9900 est une belle machine, et très rapide.

Cependant elle reste assez limitée en possibilités de programmation, par exemple on ne peut pas écrire où on veut sur l'écran texte, le nombre d'objets d'une catégorie (listes, matrices, images, graphes etc) est en général limité à 10 (exception : les programmes).
Dans un programme, les Goto, Label, et presque toutes les commandes de contrôle, doivent être seuls sur une ligne... :evil:

En termes de facilité de mise en oeuvre et de possibilités disponibles, ma préférence va à la TI83.
Cette machine est à la fois très simple et a tout ce qu'il faut pour programmer. Dommage que le processeur traîne tant, le hardware n'a quasiment pas changé depuis 15 ans. Avec un ARM à PfuitZigahertz, ce serait la meilleure machine non CAS du marché (peut-être un écran un peu plus grand ?).
IMHO
G.E.
Avatar du membre
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5646
Enregistré le : 26 mars 2009 13:07
Localisation : Ile de France
Contact :

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

Message par ledudu »

Grâce à mon CPC6128 et à sa résolution (meilleure que les Casio graphiques...), j'ai mis à jour mon programme avec les 2 niveaux suivants. J'ai au passage compris la récurrence de la formule mais même le CPC produit au niveau 5 un flocon sans qu'on puisse en dicerner les triangles.

Image

Voici le code BASIC valable quel que soit P.

Code : Tout sélectionner

10 DEG:a=30
20 input "Profondeur",p
30 d=370/3^p
40 clg
50 x=150:y=194
60 plot x,y
70 for n=1 to 3*4^p
80 s=-2
100 for i=1 to p
110 j=(4^i)/2
120 if int((n+j/2)/j)=(n+j/2)/j then s=1
130 next i
140 x=x+d*cos(a)
150 y=y+d*sin(a)
160 a=a+60s
170 draw x,y
180 locate 1,1:print n;"/";3*4^p
190 next n
200 if inkey$="" then 200
Modifié en dernier par ledudu le 21 nov. 2010 23:18, modifié 5 fois.
Avatar du membre
Ythunder
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4562
Enregistré le : 09 août 2008 17:46
Localisation : 03

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

Message par Ythunder »

ça serait sympa de pouvoir transcrire ce programme en BASIC sur chaque micro-ordinateur. Il y a certaines insctructions sur vois calculatrices dont je ne me souviens pas connaitre sur BASIC (thomson, gfa, etc). Mais même maintenant, la programmation étant surtout un souvenir, j'aurai du mal (surtout avec des formules de math). Mais s'il y a des volontaires..
Quand je lis ça "oui des passionnées qui modifie des machines pour en faire des moutons a 5 pattes qui n'ont plus rien a voir avec la machine d'origine afin de faire la video choc sur youtube..."

Ca me fait rire. Perso, je n'ai ni chaine youtube sur les machines et je n'ai aucun mouton à 5 pattes qui n'a pàlus rien a voir avec des machines d'origine. Mais à qui s'adressait on ?
Avatar du membre
kweeky
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1777
Enregistré le : 05 oct. 2007 19:46
Localisation : Pas très loin de Bordeaux

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

Message par kweeky »

@Yhunder : le CPC n'est pas une calculatrice ! :mrgreen: :arrow: :arrow: :arrow:
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3421
Enregistré le : 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 »

Euh! Désolé de jouer encore une fois les rabat-joie.

Mais, aux lignes 140 et 150 il n'y aurait pas l'oubli d'un "*" entre la variable D et le sin (resp. cos) ?

Parceque siono, le CPC est une calculatrice (ma SHARP PC-1211 permet d'utiliser la multiplication implicite, mais je ne savait pas que c'étati possible sur un CPC ?).

Ou alors, je viens encore de découvrir quelque chose.

Concernant la formule de récurence, je n'utilisait pas de comptage, mais en fait l'insertion d'ordres de traçage.
Il faut dire qu'à l'époque où j'ai dessiné mes premiers flocons, beaucoup travailler en Logo.

Pour faire le triangle inital (niveau P=0), il faUt tourner trois fois de 120° (2pi/3).
Pour faire comme dans le post inital de ce fil, nous tournons dans le sens inverse du sens trigonmétrique, disons que nous tournons à droite, sens négatif.
Donc en fait -120° (soit -2pi/3) .
Notons simpement par un signe "-" cette rotation.

Inversement, notons par "+" la rotation en sens trigonométrique (positif) d'un angle de +60° (+pi/3 radian).


Image
Séquence:) (
Image
Séquence:) + - + (
Image
Séquence:) + - + + + - + - + - + + + - + (
Image
Séquence:)+-+++-+-+-+ ++-+++-+++-+-+-+++-+-+-+++-+-+-+++-+++-+++-+-+-+++-+(
Image
Séquence:)+-+++-+-+-+++-+++-+++-+-+-+++-+-++-+-+-+++-+++-+++-+-+-+++-+++-+++-+-+-+++-+...(


Le triangle est obtenu en effectuant P0:"---"


Regle de construction de la fractale, pour ajouter un angle supplèmentaire à chaque coté du triange, on doit en fait tourner à gauche (mais légèrement de +60° (soit pi/3)), tourner à droite de -120° et à nouveu à gauche de +60°

Si l'on note par un "+" la rotation à gauche l'ajout d'un petit triangle revient à exécuter "+-+". Ce qui mettre le triangle à l'extérieur.

La séquence pour la seconde figure (p=1) revient à insérer l'exécusion de "+-+" entre chaque "-" du riangle intial:
P1:"- +-+ - +-+ - +-+ -"

On voit comment se crée la récurence. Pour dessiner les petit triangles suivants, il faut insérer à nouveau la séquence "+-+" entre chaque étape du tracé précèdent :
P2:"- +-+ + +-+ - +-+ + +-+ - +-+ + +-+ - +-+ + +-+ - +-+ + +-+ - +-+ + +-+ -"
P3::"- +-+ + + +-+ + - +-+ + + +-+ + + +-+ + + +-+ + - +-+ + + +-+ + - +-+ + + +-+ + - +-+ + + +-+ + + +-+ + + +-+ + - +-+ + + +-+ + - +-+ + + +-+ + - +-+ + + +-+ + + +-+ + + +-+ + - +-+ + + +-+ + - +-+ + + +-+ + - +-+ + + +-+ + + +-+ + + +-+ + - +-+ + + +-+ + - +-+ + + +-+ + - +-+ + + +-+ + + +-+ + + +-+ + - +-+ + + +-+ + - +-+ + + +-+ + - +-+ + + +-+ + + +-+ + + +-+ + - +-+ + + +-+ + -"

Et ainsi de suite...
On multiplie à chaque niveau par 4 la longueur de la chaine pour interpréter le tracé.
On comprend alors d'où vient les tests de parité en (4^p)


Les fans des calculatrices BASIC peuvent s'en donner à coeur-joie avec les MIDS$ et autre concaténation. Attention cependant à ne pas dépasser la limite des 255 cartères par chaines alphanumérique de nos vieux calculateur/trice ?

J'entends déjà les petits malins qui diront que comme l'on fait trois fois la même chose (une fois sur chaque coté du triangle inital), on a besoin que d'un tier de la séquence (ce qui permet avec la limite des 255 caractères d'aller trois fois plus loin).

Remarquons que l'on peut obtenir des résultats fort semblables (mais iffèrent) en partant de l'hexagone
Q0:"++++++" en insérant des 'petits triangels' à l'intérieur cete fois par la séquence opposée "-+-"


Reste toujours la limite de la résolution de nos calculatrices (Casio Fx 8xxx, HP-50g, CPC ou Commodore C128D,...) qui fait qu'à partir d'un certains niveau, on ne voit plsu le détail des flocons. (Flocons qui sont attendu ici dès jeudi matin)

Pour être visible, un petit triangle doit faire au moins 3 pixels. Or la longueur du petit trait qui est donnée par D est divisée par trois à chaque étape.

Pour la séquence P5 nous auront donc :
une séquance de 4*3^p = 4*3^5 = 972 (en fait 971 car le dernier caractère ne sert à rien)
Soit une chaine de caractère de commande de 324 caractères (pour un coté - attention à la limite des calculatrices BASIC que sont les Commodores CPC et autres Apple...)
La longueur du plus petit traingle sera en fait 1/3^5 = 1/243ième de la longeur du triangle ou hexagone initial.
La résolution minimal nécessaire à la visibilité de ces 'plus petits triangles' sera donc de 729 pixels.
Il faut donc au minium un écran de calculatrice proposant une résolution de 1024 x 819.

Ah!Ah! Existe-il une calculatrice avec une telle résolution ?
A l'époque, la solution avait été d'utiliser un plotter.

Image
Modifié en dernier par C.Ret le 23 mars 2022 23:18, modifié 3 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5646
Enregistré le : 26 mars 2009 13:07
Localisation : Ile de France
Contact :

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

Message par ledudu »

C.Ret a écrit :Mais, aux lignes 140 et 150 il n'y avait pas oubli d'un "*" entre la variable D et le sin (resp. cos) ?
C'est exact :!:
Avatar du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7148
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

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

Message par gege »

Bonne idée le coup des changements de direction, je me demandais comment il peut se faire que le flocon "ferme" bien, c'est à dire que l'on revient bien au point de départ ?
A un certain niveau de détail on a 3*4^P segments, pour P=5 ça fait 3072 petits segments qui s'additionnent, c'est beaucoup mais pas assez pour créer un écart significatif car la machine a bien plus de précision que nécessaire.
Pas encore compris la ligne 120 mais ça va venir.
Alors qui a une autre idée de fractale ?
G.E.
Avatar du membre
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5646
Enregistré le : 26 mars 2009 13:07
Localisation : Ile de France
Contact :

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

Message par ledudu »

gege a écrit :Pas encore compris la ligne 120 mais ça va venir.
J'ai trouvé la formule générale en partant des 4 premières et en intuitant la suite.

L'idée est la suivante : l'angle est une fois 60 une fois -120 (i=1) sauf exceptions.
Chaque niveau >1 apporte son lot d'exceptions supplémentaires.
Les exceptions se trouvent toujours au même endroit mais vu qu'il y a plus de segments, les numéros de segments N ou ça arrive sont différents (en fait X par 4). Ils sont identifiés par la fonction FRAC (sur CPC, pas de Frac donc -> Int)

Image

gege a écrit :Alors qui a une autre idée de fractale ?
:slime:
Avatar du membre
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7958
Enregistré le : 24 mai 2002 09:57
Localisation : France 69
Contact :

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

Message par jvernet »

Celles ci:

[edit modo]
Le hot linking, ça ne marche pas toujours ;)
http://sebastienkremer.ifrance.com/chaos.htm
[/edit]

http://sebastienkremer.ifrance.com/CH-attrac2.gif

A faire faire sur un traceur, en couleurs !
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3421
Enregistré le : 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 »

C.Ret a écrit :Image
Séquence:)+-+++-+-+-+++-+++-+++-+-+-+++-+-++-+-+-+++-+++-+++-+-+-+++-+++-+++-+-+-+++-+...(
Je vous ait bien eut avec mes histoire de + et de -, notation à la Lindenmayer quelque part.
Mais quand on regarde comment les groupes de +-+ s'intercalent entre les + ou les - des niveaux inférieur, on remarque que ....

... je vous laisse réflèchir à cela.
L'inconvénient est que pour dessiner le niveau N, il faut calculer les séquences des niveaux inférieure jusqu'à 0 (qui est "---").

Et pourquoi ne pas utiliser 0,1,2,3 avec :
1 et 3 : tourner (à gauche) de 60°
2 : tourner (à droite) de -120°
0 : tourner comme l'indique le niveau inférieur. (ou -120° si niveau 0 atteind)

Donc, tracer un flocon revient à compter en base 4. A chaque fois que l'on dépasse 3, on revient à 0 aprés avoir augmenter le niveau inférieur. C'est juste une boucle en fait.


Je propose donc un programme simple pour Commodore C128D (ou tout commodore 8bits avec capacité graphiques).

En théorie, ce programme est capable de calculer les flocons de Koch jusqu'au niveau 99.
Mais en pratique, sur l'écran d'un Commodore C128, on ne voit plus très bien de diffèrence à partir du niveau 7.

Code : Tout sélectionner


               MICROSOFT BASIC 0.7 PROGRAM :'KOCH STACK'

  100 COLOR 4,5:COLOR 0,1:COLOR 1,2:GRAPHIC 1,1
  110 SCALE 1,2048,1280
  120 DIM P%(99)
  130 : 
  200 INPUT "LEVEL ";N%
  210 A =0:X=1575:Y=960
  220 SNCCLR 1
  230 D=1107/3^N%
  240 DRAW 0,X,Y
  250 :
  300 FOR I=1 TO 3
  310 :  GOSUB 1020
  320 :  I%=N%
  330 :  DO WHILE I%>0
  350 :  :  P%(I%)=(P%(I%)+1) AND 3                               :REM  equivalent de (P%(I%)+1) MOD 4 
  360 :  :  ON P%(I%) GOSUB 1010,1020,1010
  365 :  :  IF P%(I%)>0 THEN I%=N%:ELSE I%=I%-1
  380 :  LOOP
  390 NEXT I
  400 CHAR 1,0,0,STR$(N%)
  410 N%=N%+1:GOTO 200
  420 END
    :
 1000 REM ----------- DRAW LINE
 1010 A=A+3
 1020 A=A-2
 1030 :
 1050 X=X+D*COS(A*PI/3)
 1060 Y=Y+D*SIN(A*PI/3)
 1070 DRAW 1 TO X,Y
 1080 RETURN
 1090 '

   END OF 'KOCH STACK'
Image
Image
Modifié en dernier par C.Ret le 23 mars 2022 23:16, modifié 1 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
Woodstock
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1969
Enregistré le : 17 mai 2008 11:19
Localisation : Au fin fond du Santerre ...

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

Message par Woodstock »

Image
Modifié en dernier par Woodstock le 22 nov. 2010 20:10, modifié 2 fois.
I'm the operator
Of my pocket calculator
I am adding
And substracting...
(Kraftwerk, Computer World, 1981)
Avatar du membre
kweeky
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1777
Enregistré le : 05 oct. 2007 19:46
Localisation : Pas très loin de Bordeaux

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

Message par kweeky »

Frimeur ! :wink:
Avatar du membre
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5646
Enregistré le : 26 mars 2009 13:07
Localisation : Ile de France
Contact :

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

Message par ledudu »

Joli bébête !
billaj
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 383
Enregistré le : 09 avr. 2005 17:48
Localisation : Brest
Contact :

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

Message par billaj »

Marrant les coincidences, je jouais justement avec cette fractale il y a peu de temps...bon ben je vais me joindre à la fête alors :wink:
Programme tout moche en Java, flocon "intérieur" (hexagone à la base, avec la fractale qui grandit à l'intérieur) et traceur...
ImageImage
Quand Chuck Norris joue à Nintendogs, il a automatiquement armes et munitions infinies.
Chuck Norris peut revenir en arrière dans Super Mario Land.
Chuck Norris utilise exclusiment des calculatrices Texas Instruments.
Avatar du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7148
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

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

Message par gege »

kweeky a écrit :Frimeur ! :wink:
La toute grosse frime en effet !!! :D :D
Pas mieux...
G.E.
Répondre

Retourner vers « Tous les Pockets »