FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Une calculatrice en une ligne de programme
On ressort les petites courbes des placards Emptypar jean_debord Aujourd'hui à 8:47

» Form(résolu)
On ressort les petites courbes des placards Emptypar leclode Hier à 17:59

» trop de fichiers en cours
On ressort les petites courbes des placards Emptypar Marc Hier à 11:42

» Bataille navale SM
On ressort les petites courbes des placards Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Gestion d'un système client-serveur.
On ressort les petites courbes des placards Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
On ressort les petites courbes des placards Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
On ressort les petites courbes des placards Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
On ressort les petites courbes des placards Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
On ressort les petites courbes des placards Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
On ressort les petites courbes des placards Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
On ressort les petites courbes des placards Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
On ressort les petites courbes des placards Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
On ressort les petites courbes des placards Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
On ressort les petites courbes des placards Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
On ressort les petites courbes des placards Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le deal à ne pas rater :
Jeux, jouets et Lego : le deuxième à -50% (large sélection)
Voir le deal

 

 On ressort les petites courbes des placards

Aller en bas 
+2
papydall
Jicehel
6 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On ressort les petites courbes des placards Empty
MessageSujet: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMar 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
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMar 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
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMar 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. lol!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMar 28 Avr 2015 - 14:18

Ca tombe bien par ce que comme on sait programmer, on fait tout keskonveu  Smile
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 Very Happy ...)

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
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMar 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
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMar 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

Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMar 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
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMar 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
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMar 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 !) Laughing  Laughing


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
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMar 28 Avr 2015 - 17:09

Et on progresse toujours en travaillant en équipe  Wink

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
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMar 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
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMar 28 Avr 2015 - 17:44

Bon, je teste, en attendant, je te donne ça à te mettre sous la dent Wink

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
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMar 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
Revenir en haut Aller en bas
Parpaiun

Parpaiun


Nombre de messages : 192
Age : 84
Localisation : HERAULT
Date d'inscription : 15/04/2015

On ressort les petites courbes des placards Empty
MessageSujet: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMer 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 cheers cheers cheers


Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyMer 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.
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyJeu 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 ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyJeu 30 Avr 2015 - 1:58

J'aime Smile
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 ============================================================================
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

On ressort les petites courbes des placards Empty
MessageSujet: re   On ressort les petites courbes des placards EmptyJeu 30 Avr 2015 - 2:04

Ha qu' est ce que j' aimerais être capables de faire des trucs pareils... Sad 

C' est vraiment super ! Bravo !
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyJeu 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 ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyJeu 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 ============================================================================
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1250
Age : 69
Localisation : Limoges
Date d'inscription : 21/09/2008

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyJeu 30 Avr 2015 - 9:16

Un lien sur le meccanographe (le vrai, pas sa simulation informatique !) :

http://meccrl.free.fr/mgr.htm

Je n'ai jamais essayé d'en monter un !
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyJeu 30 Avr 2015 - 11:11

Merci pour le lien jean_debord, ça réveille tant de vieux souvenirs... le Meccano...
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyJeu 30 Avr 2015 - 11:54

Je ne pourrais regarder que ce soir, ça ne passe pas ici...
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptyVen 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   Smile

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 ============================================================================
Revenir en haut Aller en bas
Parpaiun

Parpaiun


Nombre de messages : 192
Age : 84
Localisation : HERAULT
Date d'inscription : 15/04/2015

On ressort les petites courbes des placards Empty
MessageSujet: On ressort les petites courbes des placards   On ressort les petites courbes des placards EmptySam 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 ! Question de Parpaiun
Revenir en haut Aller en bas
Contenu sponsorisé





On ressort les petites courbes des placards Empty
MessageSujet: Re: On ressort les petites courbes des placards   On ressort les petites courbes des placards Empty

Revenir en haut Aller en bas
 
On ressort les petites courbes des placards
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Un TRISKELL en courbes !
» Courbes de Bézier cubiques
» Courbes statistiques
» Les Courbes de Bézier cubiques
»  Les Courbes de Bézier cubiques

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les inutilitaires-
Sauter vers: