Mai 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | Calendrier |
|
| | On ressort les petites courbes des placards | |
| | |
Auteur | Message |
---|
Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: On ressort les petites courbes des placards Mar 28 Avr 2015 - 12:22 | |
| Dans les courbes, nous en avions déjà quelques unes. Pour ne pas faire des tas de messages, j'ouvre un sujet pour mettre les différents petits programmes sur le sujet. Celle d'en dessous, vous avez 2 variations une pour la couleur et l'autre pour le type de tracé. Il suffit d'inverser les lignes de commentaires avec la ligne du programme correspondante pour avoir la variation de couleur ou de type de tracé. - Code:
-
' Courbe EPI DIM x, y, x0, y0, a, m, r, t, z DIM PI : PI = 3.141593 DIM c1, c2 WIDTH 0,SCREEN_X : HEIGHT 0,SCREEN_Y z = 2 : ' le zoom x0 = 0 : y0 = 0 2D_PEN_WIDTH 4 FOR t = PI * (0-5) to PI * 5 STEP PI / 200 a =1 : m = SQR(3)/2 : r = 1/SIN(m*t) x = (SCREEN_X/2) + (50*r*COS(t)*z) : y = (SCREEN_Y/2) + (50*r*SIN(t)*z) c1 = x : if c1 > 1024 THEN c1 = 1024 IF c1 < 0 THEN c1 = 0 c2 = y : if c2 > 1024 THEN c2 = 1024 IF c2 < 0 THEN c2 = 0 ' 2D_PEN_COLOR ABS(SCREEN_X/2 - c1)/4 , ABS(SCREEN_Y/2 - c2)/4, ABS(t) * 12 2D_PEN_COLOR abs(t) * 8 , abs(t) * 16, abs(t) * 8 ' 2D_POINT x,y IF x0 = 0 AND y0=0 ' Premier passage ELSE 2D_LINE x0,y0,x,y ' 2D_POINT x,y END_IF x0 = x : y0 = y NEXT t | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: On ressort les petites courbes des placards Mar 28 Avr 2015 - 13:51 | |
| Bon une autre pour après la sieste ... - Code:
-
DIM x, y, z, t DIM PI : PI = 3.141593 WIDTH 0,SCREEN_X : HEIGHT 0,SCREEN_Y z = 5
FOR t = 13 * (0 - PI) TO 13 * PI STEP PI / 400 x = (37 * COS(t) - 12 * COS(37 * t / 12)) * z + SCREEN_X/2 y = (37 * SIN(t) - 12 * SIN(37 * t / 12)) * z + SCREEN_Y/2 2D_PEN_COLOR (1 + COS(t))*127 , (1 + SIN(t))*127, ABS(t) * 2 2D_POINT x,y NEXT t WAIT 3000 TERMINATE On obtient plein de chose sympa en faisant varier un peu les paramètres, par exemple: - Code:
-
DIM x, y, z, t DIM PI : PI = 3.141593 WIDTH 0,SCREEN_X : HEIGHT 0,SCREEN_Y z = 5
FOR t = 2 * (0 - POWER(PI,2)) TO 2 * POWER(PI,2) STEP PI / 600 x = (37 * COS (t) - 12 * COS(37 * t / 12)) * z + SCREEN_X/2 y = (37 * SIN (t) - 12 * SIN(37 * t / 12)) * z + SCREEN_Y/2 2D_PEN_COLOR (1 + COS(t))*127 , (1 + SIN(t))*127, ABS(t) * 2 2D_POINT x,y NEXT t WAIT 3000 TERMINATE et sa soeur: - Code:
-
DIM x, y, z, t DIM PI : PI = 3.141593 DIM c1, c2 WIDTH 0,SCREEN_X : HEIGHT 0,SCREEN_Y z = 20 FOR t = 3 * (0 - PI) TO 3 * PI STEP PI / 10000 x = (8 * COS(t) - 5 * COS(8 * t / 3)) * z + SCREEN_X/2 y = (8 * SIN(t) - 5 * SIN(8 * t / 3)) * z + SCREEN_Y/2 2D_PEN_COLOR (1 + COS(t))*127 , (1 + SIN(t))*127, ABS(t) * 2 2D_POINT x,y NEXT t WAIT 3000 TERMINATE | |
| | | papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: On ressort les petites courbes des placards Mar 28 Avr 2015 - 14:08 | |
| C’est bien beau tout ça, mais (mon omniprésent mais !) je préfère que le tracé soit sur fond noir ! A ajouter - Code:
-
color 0,0,0,0
Et puis j’aime bien aussi admirer le tracé plus longtemps, donc je vire le TERMINATE. | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: On ressort les petites courbes des placards Mar 28 Avr 2015 - 14:18 | |
| Ca tombe bien par ce que comme on sait programmer, on fait tout keskonveu Il y a tellement de variations possibles et de possibilités selon les goûts de chacun ou si l'on veut faire une démo longue avec plein de courbes, pour garder une certaine homogénéité ou au contraire pour trancher visuellement à chaque courbe... Je ne pense pas que l'on puisse pour le moment créer un screensaver directement en Panoramic, mais sinon, il pourrait être interessant que le tracé se fasse lentement ou au contraire très rapidement. On pourrait appliquer aussi des matrices de rotation pour stocker les points dans un tableau et appliquer à chaque image une rotation de la figure pas exemple... Ou on pourrait appliquer les formules de projection pour donner l'impression que la figure tourne sur elle même comme on le ferait en 3D autour d'un axe.... La seule limitation est notre imagination. Amusez vous bien aussi avec ces figures. Tiens, d'ailleurs, encore une autre (avec 2 possibilités de tracés très différents au niveau rendu, mais sur fond noir pour faire plaisir à mon public et avec un terminate, histoire qu'il ait quand même quelque chose à faire ...) - Code:
-
DIM x, y, z, r1, r2, t DIM PI : PI = 3.141593 WIDTH 0,SCREEN_X : HEIGHT 0,SCREEN_Y : COLOR 0,0,0,0 z = 50 : r1 = 10 : r2 = 4 FOR t = 3 * (0 - PI) TO 3 * PI STEP PI / 10000 x = (r1+r2) * COS(t) - r2 * COS((r1+r2)/r2*t)*z + SCREEN_X/2 y = (r1+r2) * SIN(t) - r2 * SIN((r1+r2)/r2*t)*z + SCREEN_Y/2 2D_PEN_COLOR (1 + COS(t))*127 , (1 + SIN(t))*127, ABS(t) * 2 ' 2D_POINT x,y IF ABS(t) > 1.135 THEN 2D_LINE SCREEN_X/2, SCREEN_Y/2,x,y NEXT t WAIT 3000 TERMINATE | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: On ressort les petites courbes des placards Mar 28 Avr 2015 - 16:13 | |
| Aller on continuie le bombardement: - Code:
-
DIM x, y, z, r1, r2, t DIM PI : PI = 3.141593 WIDTH 0,SCREEN_X : HEIGHT 0,SCREEN_Y : COLOR 0,0,0,0 r1 = 10 : r2 = 1 FOR z = 300 TO 30 STEP -30 FOR t = 20 * (0 - PI) TO 20 * PI STEP PI / 200 x = (r1+r2) * COS(t) - r2 * COS((r1+r2)/r2*t)*z + SCREEN_X/2 y = (r1+r2) * SIN(t) - r2 * SIN((r1+r2)/r2*t)*z + SCREEN_Y/2 2D_PEN_COLOR (1 + COS(t))*127 , (1 + SIN(t))*127, ABS(t) * 1.5 2D_POINT x,y NEXT t NEXT z et sa variante: - Code:
-
DIM x, y, x0,y0, z, r1, r2, t DIM PI : PI = 3.141593 WIDTH 0,SCREEN_X : HEIGHT 0,SCREEN_Y : COLOR 0,0,0,0 r1 = 10 : r2 = 1 : z = 300 FOR t = 20 * (0 - PI) TO 20 * PI STEP PI / 500 x = (r1+r2) * COS(t) - r2 * COS((r1+r2)/r2*t)*z + SCREEN_X/2 y = (r1+r2) * SIN(t) - r2 * SIN((r1+r2)/r2*t)*z + SCREEN_Y/2 2D_PEN_COLOR (1 + COS(t))*127 , (1 + SIN(t))*127, ABS(t) * 1.5 IF ABS(t) > 2.5 THEN 2D_LINE SCREEN_X /2, SCREEN_Y /2, x, y NEXT t Have fun | |
| | | papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: On ressort les petites courbes des placards Mar 28 Avr 2015 - 16:19 | |
| Ah Ah ! Que c’est beau ! Je suis gentil aujourd’hui comme toujours et je te donne une astuce pour améliorer la vitesse du tracé de telle dessin. Mais comme j'aime bien jouer, je ne te dévoile pas mon sécret et c’est à toi de le découvrir : c’est dans ce - Code:
-
DIM x, y, z, r1, r2, t DIM PI : PI = 3.141593 WIDTH 0,SCREEN_X : HEIGHT 0,SCREEN_Y : COLOR 0,0,0,0 z = 50 : r1 = 10 : r2 = 4 2d_pen_width 5 FOR t = 3 * (0 - PI) TO 3 * PI STEP PI / 1000 x = (r1+r2) * COS(t) - r2 * COS((r1+r2)/r2*t)*z + SCREEN_X/2 y = (r1+r2) * SIN(t) - r2 * SIN((r1+r2)/r2*t)*z + SCREEN_Y/2 2D_PEN_COLOR (1 + COS(t))*127 , (1 + SIN(t))*127, ABS(t) * 2 ' 2D_POINT x,y IF ABS(t) > 1.135 THEN 2D_LINE SCREEN_X/2, SCREEN_Y/2,x,y NEXT t WAIT 3000 TERMINATE
| |
| | | papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: On ressort les petites courbes des placards Mar 28 Avr 2015 - 16:32 | |
| Bon, voici l’astuce : On augmente la largeur du tracé en utilisant la commande 2D_PEN_WIDTH W. Par exemple - Code:
-
2d_pen_width 5 Et on divise le pas de la boucle par 10 par exemple. On gagne ainsi beaucoup en rapidité sans une altération visible du tracé. J'aime la symétrie, alors voici une autre modification du code - Code:
-
DIM x, y, z, r1, r2, t DIM PI,P : PI = acos(-1) : P = PI/720 dim x1,y1,x2,y2 x1 = 3*screen_x/8 : y1 = screen_y/2 x2 = 5*screen_x/8 : y2 = y1 WIDTH 0,SCREEN_X : HEIGHT 0,SCREEN_Y : COLOR 0,0,0,0 z = 50 : r1 = 10 : r2 = 4 2d_pen_width 5 FOR t = 3 * (0 - PI) TO 3 * PI STEP P x = (r1+r2) * COS(t) - r2 * COS((r1+r2)/r2*t)*z y = (r1+r2) * SIN(t) - r2 * SIN((r1+r2)/r2*t)*z 2D_PEN_COLOR (1 + COS(t))*127 , (1 + SIN(t))*127, ABS(t) * 2 IF ABS(t) > 1.135 2D_LINE x1, y1,x1-x,y+y1 : 2D_LINE x2, y2,x2+x,y+y2 end_if NEXT t
Dernière édition par papydall le Mar 28 Avr 2015 - 17:06, édité 1 fois | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: On ressort les petites courbes des placards Mar 28 Avr 2015 - 16:52 | |
| Pas mal, mais dans l'urgence, tu avais laissé un peu de code inutile alors j'ai modifié et j'ai rajouté une petite mise en forme totalement arbitraire, mais qui change un peu le rendu, du coup - Code:
-
DIM x, y, z, r1, r2, t DIM PI : PI = acos(-1) DIM x1,y1,x2,y2, p : p = PI/220 x1 = 3 * SCREEN_X /8 : y1 = SCREEN_Y / 2 : x2 = 5 * SCREEN_X / 8 : y2 = y1 WIDTH 0,SCREEN_X : HEIGHT 0,SCREEN_Y 2D_PEN_WIDTH 8 : 2D_FILL_COLOR 0,0,0 : 2D_PEN_COLOR 255,0,0 2D_CIRCLE SCREEN_X/2, SCREEN_Y/2, SCREEN_X/4 + 8 z = 50 : r1 = 10 : r2 = 4 FOR t = 3 * (0 - PI) TO 3 * PI STEP P x = (r1+r2) * COS(t) - r2 * COS((r1+r2)/r2*t)*z y = (r1+r2) * SIN(t) - r2 * SIN((r1+r2)/r2*t)*z 2D_PEN_COLOR (1 + COS(t))*127 , (1 + SIN(t))*127, ABS(t) * 2 IF ABS(t) > 1.135 THEN 2D_LINE x1, y1,x1-x,y+y1 : 2D_LINE x2, y2,x2+x,y+y2 NEXT t | |
| | | papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: On ressort les petites courbes des placards Mar 28 Avr 2015 - 17:02 | |
| - jicehel a écrit:
- Pas mal, mais dans l'urgence, tu avais laissé un peu de code inutile...
C'est bien connu, Papydall est parfois étourdi (pas toujours, mais souvent !) Modifier la ligne 30 comme ceci (pour bien centrer le cercle) - Code:
-
2D_CIRCLE SCREEN_X/2, SCREEN_Y/2-30, SCREEN_X/4 + 8 | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: On ressort les petites courbes des placards Mar 28 Avr 2015 - 17:09 | |
| Et on progresse toujours en travaillant en équipe Bon, après tout, je fais un message, je mets une variante: - Code:
-
DIM x, y, z, r1, r2, t DIM PI : PI = ACOS(-1) DIM x1,y1,x2,y2, p : p = PI/220 x1 = 3 * SCREEN_X /8 : y1 = SCREEN_Y / 2 : x2 = 5 * SCREEN_X / 8 : y2 = y1 WIDTH 0,SCREEN_X : HEIGHT 0,SCREEN_Y 2D_PEN_WIDTH 8 : 2D_FILL_COLOR 0,0,0 : 2D_PEN_COLOR 255,0,0 2D_CIRCLE SCREEN_X/2, SCREEN_Y/2, SCREEN_X/4 + 8 z = 265 : r1 = 10 : r2 = 0.75 FOR t = 10 * (0 - PI) TO 0 - 2.11 STEP P x = (r1+r2) * COS(t) - r2 * COS((r1+r2)/r2*t)*z y = (r1+r2) * SIN(t) - r2 * SIN((r1+r2)/r2*t)*z 2D_PEN_COLOR (1 + COS(t))*127 , (1 + SIN(t))*127, ABS(25 - t) IF ABS(t) > 1.135 THEN 2D_LINE x1, y1,x1-x,y+y1 : 2D_LINE x2, y2,x2+x,y+y2 NEXT t | |
| | | papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: On ressort les petites courbes des placards Mar 28 Avr 2015 - 17:33 | |
| Une ellipse à la place du cercle! - Code:
-
DIM x, y, z, r1, r2, t DIM PI : PI = acos(-1) DIM x1,y1,x2,y2, p : p = PI/220 x1 = 3 * SCREEN_X /8 : y1 = SCREEN_Y / 2 : x2 = 5 * SCREEN_X / 8 : y2 = y1 WIDTH 0,SCREEN_X : HEIGHT 0,SCREEN_Y : color 0,100,150,50 2D_PEN_WIDTH 8 : 2D_FILL_COLOR 0,0,0 : 2D_PEN_COLOR 0,0,255 ' Tracé d'une ellipse 2d_poly_from screen_x/2+(screen_x/4+8), SCREEN_Y/2 : ' Origine du tracé de l'ellipse for t = 0 to 2*pi step p 2d_poly_to screen_x/2+(screen_x/4+8)*cos(t), SCREEN_Y/2 + (screen_x/6+18)*sin(t) next t : ' Fin du tracé de l'ellipse 2d_flood screen_x/2,screen_y/2,0,0,0 : ' Coloriage du fond de l'ellipse en noir z = 50 : r1 = 10 : r2 = 4 FOR t = 3 * (0 - PI) TO 3 * PI STEP P x = (r1+r2) * COS(t) - r2 * COS((r1+r2)/r2*t)*z y = (r1+r2) * SIN(t) - r2 * SIN((r1+r2)/r2*t)*z 2D_PEN_COLOR (1 + COS(t))*127 , (1 + SIN(t))*127, ABS(t) * 2 IF ABS(t) > 1.135 THEN 2D_LINE x1, y1,x1-x,y+y1 : 2D_LINE x2, y2,x2+x,y+y2 NEXT t
| |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: On ressort les petites courbes des placards Mar 28 Avr 2015 - 17:44 | |
| Bon, je teste, en attendant, je te donne ça à te mettre sous la dent - Code:
-
DIM x, y, x0, y0, k, n, z, t DIM PI : PI = ACOS(-1) DIM p : p = PI/20000 WIDTH 0,SCREEN_X : HEIGHT 0,SCREEN_Y : COLOR 0,0,0,0 z = 0.4 : x0 = 1 : y0 = 1 : n = 1 : k = 0.95 FOR t = 3 * (0 - PI) TO 3 * PI STEP p x = ((x0 + POWER(k,n)) * COS(n*t))*z + SCREEN_X/2 y = ((y0 + POWER(k,n)) * SIN(n*t))*z + SCREEN_Y/2 2D_PEN_COLOR 255 - ABS((SCREEN_X/2 - x)/3),255 - y/3,255 - y/3 2D_POINT x,y x0 = x : y0 = y : n = n + 1 NEXT t | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: On ressort les petites courbes des placards Mar 28 Avr 2015 - 17:56 | |
| Sympa avec l'élipse. J'ai fais une variante de ta version avec l'élipse: - Code:
-
DIM x, y, z, r1, r2, t DIM PI : PI = ACOS(-1) DIM x1,y1,x2,y2, p : p = PI/220 x1 = 3 * SCREEN_X /8 : y1 = SCREEN_Y / 2 : x2 = 5 * SCREEN_X / 8 : y2 = y1 WIDTH 0,SCREEN_X : HEIGHT 0,SCREEN_Y : COLOR 0,150,100,50 : 2D_PEN_WIDTH 8
' Tracé de la courbe z = 50 : r1 = 10 : r2 = 4 FOR t = 3 * (0 - PI) TO 3 * PI STEP P x = (r1+r2) * COS(t) - r2 * COS((r1+r2)/r2*t)*z y = (r1+r2) * SIN(t) - r2 * SIN((r1+r2)/r2*t)*z 2D_PEN_COLOR (1 + COS(t))*127 , (1 + SIN(t))*127, ABS(t) * 2 IF ABS(t) > 1.135 THEN 2D_LINE x1, y1,x1-x,y+y1 : 2D_LINE x2, y2,x2+x,y+y2 NEXT t ' Tracé d'une ellipse 2D_FILL_COLOR 0,0,0 : 2D_PEN_COLOR 255,0,0 : 2D_PEN_WIDTH 16 2D_POLY_FROM SCREEN_X/2+(SCREEN_X/4+8), SCREEN_Y/2 : ' Origine du tracé de l'ellipse FOR t = 0 TO 2*pi STEP p 2D_POLY_TO SCREEN_X/2+(SCREEN_X/4+8)*COS(t), SCREEN_Y/2 + (SCREEN_X/6+18)*SIN(t) NEXT t : ' Fin du tracé de l'ellipse 2D_FLOOD SCREEN_X/2,SCREEN_Y/2,0,0,0 : ' Coloriage du fond de l'ellipse en noir 2D_FLOOD SCREEN_X/2,SCREEN_Y/2 - 80,0,0,0 : 2D_FLOOD SCREEN_X/2,SCREEN_Y/2 + 80,0,0,0 2D_CIRCLE SCREEN_X/2,SCREEN_Y/2,SCREEN_X/23 Ceux qui vont prendre le sujet en cours vont avoir de quoi s'occuper ... Bon allez, j'arrète les courbes pour ce soir, je pense | |
| | | Parpaiun
Nombre de messages : 192 Age : 84 Localisation : HERAULT Date d'inscription : 15/04/2015
| Sujet: On ressort les petites courbes des placards Mer 29 Avr 2015 - 20:27 | |
| Chers JICEHEL et PAPYDALL, splendide! Merveilleuses vos petites courbes qui me fascinent avec des nuances de couleurs que je pouvais pas obtenir en programmation GFA Basic 32 ! J'ai aussi un tas de courbes beaucoup plus complexes trouvées sur documentation par Internet; malheureusement, leurs formules sont quasiment introuvables malgré la présence de paramètres. Ces courbes s'appellent des : "Multiple Level Relative Motions" et j'en ai conservé des papiers avec les images variées de ces courbes. Connaissez vous les machines à dessiner les courbes en 2D, comme par exemple l'Harmonographe, le Wondergraph, la rarissime machine du père Dechevrens et enfin les meccanographes ? J'ai les papiers avec schémas sur tout ça et c'est vraiment très curieux et intéressant à voir ! Et puis, pour terminer, j'ai déjà chargé dans ma machine des logiciels gratuits de géométrie du commerce comme par exemple GEOGEBRA et SINE QUA NON. Je trouve que ces deux là ne sont pas faciles à manipuler. Alors VIVE PANORAMIC, HOURRA POUR PANORAMIC ! Bonsoir ! de Parpaiun | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: On ressort les petites courbes des placards Mer 29 Avr 2015 - 21:19 | |
| Eventuellement tu peux écrire un article sur le matériel que tu as les machines à dessiner et si possible faire un pendant avec Panoramic en reproduisant des graphiques qu'elles auraient pu dessiner. | |
| | | papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: On ressort les petites courbes des placards Jeu 30 Avr 2015 - 1:21 | |
| - Parpaium a écrit:
- Connaissez vous les machines à dessiner les courbes en 2D, comme par exemple l'Harmonographe ....
Est-ce que ça vous dit quelque chose ? - Code:
-
rem ============================================================================ rem Harmonographe rem Par Papydall rem ============================================================================
' L'harmonographe est au départ un jouet des années 1880 (réservé aux enfants de ' familles fortunées) constitué par deux pendules et d'un système de tringles ' qui permet de tracer sur une feuille de papier les courbes résultant de la ' composition des mouvements de ces deux pendules. ' On désigne maintenant par harmonographe un dispositif qui trace les courbes ' paramétriques : rem ============================================================================ rem x(t) = A1.exp(-D1.t).sin(F1.t+phi1) + A2.exp(-D2.t).sin(F2.t+phi2) rem y(t) = A3.exp(-D3.t).sin(F3.t+phi3) + A4.exp(-D4.t).sin(F4.t+phi4) rem ============================================================================
dim a1,a2,a3,a4,f1,f2,f3,f4,phi1,phi2,phi3,phi4,d1,d2,d3,d4 dim x,y,pi,p,t,xc,yc,r pi = 2*asin(1) : p = pi/180 a1 = 2 : a2 = 2 : a3 = 2 : a4 = 2 f1 = 3 : f2 = 1 : f3 = 1.5 : f4 = 2.5 phi1 = 0 : phi2 = pi : phi3 = 0 : phi4 = pi/2 d1 = 0 : d2 = 0 : d3 = 0.01 : d4 = 0 : r = 100 full_space 0 : xc = screen_x/2 : yc = screen_y/2 -50 : color 0,0,0,0
x = A1*exp(0-D1*t)*sin(F1*t+phi1)+ A2*exp(0-D2*t)*sin(F2*t+phi2) y = A3*exp(0-D3*t)*sin(F3*t+phi3)+ A4*exp(0-D4*t)*sin(F4*t+phi4) 2d_poly_from xc + r*x ,yc+r*y for t = 0 to 100*pi step p x = A1*exp(0-D1*t)*sin(F1*t+phi1)+ A2*exp(0-D2*t)*sin(F2*t+phi2) y = A3*exp(0-D3*t)*sin(F3*t+phi3)+ A4*exp(0-D4*t)*sin(F4*t+phi4) 2d_pen_color 255,255,0 : 2d_poly_to xc+r*x,yc+r*y next t caption 0,"Terminé" rem ============================================================================
| |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: On ressort les petites courbes des placards Jeu 30 Avr 2015 - 1:58 | |
| J'aime - Code:
-
rem ============================================================================ rem Harmonographe rem Par Papydall rem ============================================================================
' L'harmonographe est au départ un jouet des années 1880 (réservé aux enfants de ' familles fortunées) constitué par deux pendules et d'un système de tringles ' qui permet de tracer sur une feuille de papier les courbes résultant de la ' composition des mouvements de ces deux pendules. ' On désigne maintenant par harmonographe un dispositif qui trace les courbes ' paramétriques : rem ============================================================================ rem x(t) = A1.exp(-D1.t).sin(F1.t+phi1) + A2.exp(-D2.t).sin(F2.t+phi2) rem y(t) = A3.exp(-D3.t).sin(F3.t+phi3) + A4.exp(-D4.t).sin(F4.t+phi4) rem ============================================================================
dim a1,a2,a3,a4,f1,f2,f3,f4,phi1,phi2,phi3,phi4,d1,d2,d3,d4 dim x,y,pi,p,t,xc,yc,r pi = 2*asin(1) : p = pi/180 a1 = 2 : a2 = 2 : a3 = 2 : a4 = 2 f1 = 3 : f2 = 1 : f3 = 1.5 : f4 = 2.5 phi1 = 0 : phi2 = pi : phi3 = 0 : phi4 = pi/2 d1 = 0 : d2 = 0 : d3 = 0.01 : d4 = 0 : r = 100 full_space 0 : xc = screen_x/2 : yc = screen_y/2 -50 : color 0,0,0,0
x = A1*exp(0-D1*t)*sin(F1*t+phi1)+ A2*exp(0-D2*t)*sin(F2*t+phi2) y = A3*exp(0-D3*t)*sin(F3*t+phi3)+ A4*exp(0-D4*t)*sin(F4*t+phi4) 2d_poly_from xc + r*x ,yc+r*y for t = 0 to 100*pi step p x = A1*exp(0-D1*t)*sin(F1*t+phi1)+ A2*exp(0-D2*t)*sin(F2*t+phi2) y = A3*exp(0-D3*t)*sin(F3*t+phi3)+ A4*exp(0-D4*t)*sin(F4*t+phi4) 2d_pen_color t*255/(100*pi),abs(x-screen_x/2)/screen_x *255,abs(y-screen_y/2)/screen_y *255 2d_poly_to xc+r*x,yc+r*y next t caption 0,"Terminé" rem ============================================================================ | |
| | | Yannick
Nombre de messages : 8611 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 30 Avr 2015 - 2:04 | |
| Ha qu' est ce que j' aimerais être capables de faire des trucs pareils... C' est vraiment super ! Bravo ! | |
| | | papydall
Nombre de messages : 7009 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: On ressort les petites courbes des placards Jeu 30 Avr 2015 - 2:16 | |
| Puisque c'est ainsi, en voici un autre : - Code:
-
rem ============================================================================ rem Harmonographe_2 rem Par Papydall rem ============================================================================
Harmonographe() end rem ============================================================================ SUB Init() dim A1,A2,A3,A4 : ' Si A2 et A4 sont nuls, on obtient des figures de Lissajous dim D1,D2,D3,D4 : ' Paramètres d'amortissement ' L'introduction d'un amortissement fait converger la courbe vers le point central. dim F1,F2,F3,F4 dim phi1,phi2,phi3,phi4 dim x,y,t,pi,p,xc,yc,z pi = acos(-1) : p = pi/180
full_space 0 : xc = screen_x/2 : yc = screen_y/2 -50 : z = yc/4 color 0,0,0,0 : 2d_pen_color 255,255,0 END_SUB rem ============================================================================ SUB Composante_X() A1 = 2.00 : A2 = 2.00 : ' de 0.0 à 4.0 F1 = 3.00 : F2 = 1.00 : ' de 0.0 à 5.0 Phi1 = 0*p : Phi2 = 180*p : ' de 0 à 360° D1 = 0.01 : D2 = 0.00123 : ' de 0.0 à 1.0 END_SUB rem ============================================================================ SUB Composante_Y() A3 = 2.00 : A4 = 2.00 : ' de 0.0 à 4.0 F3 = 1.50 : F4 = 2.50 : ' de 0.0 à 5.0 Phi3 = 90*p : Phi4 = 90*p : ' de 0 à 360° D3 = 0.0123 : D4 = 0.00 : ' de 0.0 à 1.0 END_SUB rem ============================================================================ SUB Harmonographe() dim_local t caption 0,"<CLICK> pour arrêter" Init() Composante_X() Composante_y() x = A1*exp(0-D1*t)*sin(F1*t+Phi1) + A2*exp(0-D2*t)*sin(F2*t+Phi2) y = A3*exp(0-D3*t)*sin(F3*t+Phi3) + A4*exp(0-D4*t)*sin(F4*t+Phi4) 2d_poly_from xc+z*x,yc+z*y
repeat t = t + p x = A1*exp(0-D1*t)*sin(F1*t+Phi1) + A2*exp(0-D2*t)*sin(F2*t+Phi2) y = A3*exp(0-D3*t)*sin(F3*t+Phi3) + A4*exp(0-D4*t)*sin(F4*t+Phi4) 2d_poly_to xc+z*x,yc+z*y until scancode <> 0 caption 0,"Arrêté par l'utilisateur" END_SUB rem ============================================================================
| |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: On ressort les petites courbes des placards Jeu 30 Avr 2015 - 2:37 | |
| Que la couleur soit et je fonce au lit, il est très tard .. - Code:
-
rem ============================================================================ rem Harmonographe_2 rem Par Papydall rem ============================================================================
Harmonographe() end rem ============================================================================ SUB Init() dim A1,A2,A3,A4 : ' Si A2 et A4 sont nuls, on obtient des figures de Lissajous dim D1,D2,D3,D4 : ' Paramètres d'amortissement ' L'introduction d'un amortissement fait converger la courbe vers le point central. dim F1,F2,F3,F4 dim phi1,phi2,phi3,phi4 dim x,y,t,pi,p,xc,yc,z, i pi = acos(-1) : p = pi/180
full_space 0 : xc = screen_x/2 : yc = screen_y/2 -50 : z = yc/4 color 0,0,0,0 END_SUB rem ============================================================================ SUB Composante_X() A1 = 2.00 : A2 = 2.00 : ' de 0.0 à 4.0 F1 = 3.00 : F2 = 1.00 : ' de 0.0 à 5.0 Phi1 = 0*p : Phi2 = 180*p : ' de 0 à 360° D1 = 0.01 : D2 = 0.00123 : ' de 0.0 à 1.0 END_SUB rem ============================================================================ SUB Composante_Y() A3 = 2.00 : A4 = 2.00 : ' de 0.0 à 4.0 F3 = 1.50 : F4 = 2.50 : ' de 0.0 à 5.0 Phi3 = 90*p : Phi4 = 90*p : ' de 0 à 360° D3 = 0.0123 : D4 = 0.00 : ' de 0.0 à 1.0 END_SUB rem ============================================================================ SUB Harmonographe() dim_local t caption 0,"Harmonographe_2 par Papydall" Init() Composante_X() Composante_y() x = A1*exp(0-D1*t)*sin(F1*t+Phi1) + A2*exp(0-D2*t)*sin(F2*t+Phi2) y = A3*exp(0-D3*t)*sin(F3*t+Phi3) + A4*exp(0-D4*t)*sin(F4*t+Phi4) 2d_poly_from xc+z*x,yc+z*y
for i = 1 to 25000 t = t + p x = A1*exp(0-D1*t)*sin(F1*t+Phi1) + A2*exp(0-D2*t)*sin(F2*t+Phi2) y = A3*exp(0-D3*t)*sin(F3*t+Phi3) + A4*exp(0-D4*t)*sin(F4*t+Phi4) 2d_pen_color i*255/25000,abs((x*z+xc)-(screen_x/2))*0.33,abs((y*z+yc)-screen_y/2)*0.33 2d_poly_to xc+z*x,yc+z*y next i caption 0,"Terminé" END_SUB rem ============================================================================ | |
| | | jean_debord
Nombre de messages : 1250 Age : 69 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: On ressort les petites courbes des placards Jeu 30 Avr 2015 - 9:16 | |
| | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: On ressort les petites courbes des placards Jeu 30 Avr 2015 - 11:11 | |
| Merci pour le lien jean_debord, ça réveille tant de vieux souvenirs... le Meccano... | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: On ressort les petites courbes des placards Jeu 30 Avr 2015 - 11:54 | |
| Je ne pourrais regarder que ce soir, ça ne passe pas ici... | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: On ressort les petites courbes des placards Ven 1 Mai 2015 - 1:01 | |
| Je remets une version modifiée du programme de Papydall pour une mini démo pour amateur de courbes. Perso, moi, j'aime - Code:
-
rem ============================================================================ rem Harmonographe_2 rem Par Papydall rem ============================================================================
Harmonographe() end rem ============================================================================ SUB Init() dim A1,A2,A3,A4 : ' Si A2 et A4 sont nuls, on obtient des figures de Lissajous dim D1,D2,D3,D4 : ' Paramètres d'amortissement ' L'introduction d'un amortissement fait converger la courbe vers le point central. dim F1,F2,F3,F4 dim phi1,phi2,phi3,phi4 dim x,y,t,pi,p,xc,yc,z, i, j pi = acos(-1) : p = pi/180 full_space 0 : xc = screen_x/2 : yc = screen_y/2 -50 : z = yc/4 color 0,0,0,0 END_SUB rem ============================================================================ SUB Composante_X() A1 = 2.00 : A2 = 2.00 : ' de 0.0 à 4.0 F1 = 5 - j/2 : F2 = j / 2 : ' de 0.0 à 5.0 Phi1 = 0*p : Phi2 = 180*p : ' de 0 à 360° D1 = 0.01 : D2 = 0.00123 : ' de 0.0 à 1.0 END_SUB rem ============================================================================ SUB Composante_Y() A3 = abs (5.5 - j) : A4 = j/4 : ' de 0.0 à 4.0 F3 = 1.50 : F4 = 2.50 : ' de 0.0 à 5.0 Phi3 = 90*p : Phi4 = 90*p : ' de 0 à 360° D3 = 0.0123 : D4 = 0.00 : ' de 0.0 à 1.0 END_SUB rem ============================================================================ SUB Harmonographe() dim_local t caption 0,"Harmonographe_2 par Papydall" Init() for j = 1 to 8 cls Composante_X() : Composante_y() x = A1*exp(0-D1*t)*sin(F1*t+Phi1) + A2*exp(0-D2*t)*sin(F2*t+Phi2) y = A3*exp(0-D3*t)*sin(F3*t+Phi3) + A4*exp(0-D4*t)*sin(F4*t+Phi4) t = Pi * -1 for i = 0 to 15000 t = t + p x = A1*exp(0-D1*t)*sin(F1*t+Phi1) + A2*exp(0-D2*t)*sin(F2*t+Phi2) y = A3*exp(0-D3*t)*sin(F3*t+Phi3) + A4*exp(0-D4*t)*sin(F4*t+Phi4) 2d_pen_color 250 - i*1/100,255 - abs((x*z+xc)-(screen_x/2))*0.5,abs((y*z+yc)-screen_y/2)*0.5 if i = 0 : 2d_poly_from xc+z*x,yc+z*y:else:2d_poly_to xc+z*x,yc+z*y:end_if next i wait 3000 next j caption 0,"Terminé" END_SUB rem ============================================================================ | |
| | | Parpaiun
Nombre de messages : 192 Age : 84 Localisation : HERAULT Date d'inscription : 15/04/2015
| Sujet: On ressort les petites courbes des placards Sam 2 Mai 2015 - 16:26 | |
| Dis Jicehel, ton dernier programme que tu as modifié a fait plouf à la ligne 49 pour un problème de fond. Peux tu voir ce qui se passe, s'il te plaît ? Merci ! de Parpaiun | |
| | | Contenu sponsorisé
| Sujet: Re: On ressort les petites courbes des placards | |
| |
| | | | On ressort les petites courbes des placards | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |