Novembre 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 | | Calendrier |
|
|
| Premier pas en trigonométrie | |
|
+3papydall silverman Jean Claude 7 participants | |
Auteur | Message |
---|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Premier pas en trigonométrie Ven 3 Juil 2015 - 9:27 | |
| Bonjour, j'ai posté le sujet dans l'aide car je souhaite une inspection de mon code par Papydall ou un autre matheux. Le but est de vérifier l'exactitude du code et aussi celle des commentaires, pour que je puisse savoir si ma démarche pour créer un cercle point par point est correcte. Et éventuellement, je suis preneur d'une autre façon de faire. @Jack, si tu as l'occasion de tester, j'aimerai que tu te penche sur la ligne 20. Si on met cette ligne en fonction les lignes 24 et 33 ne sont pas exécutées (ou visibles) - Code:
-
' premiers pas en trigonométrie
dim pi,pir,r,cx,cy,ad,s,c,px,py pi = acos(-1) :' définition de pi pir = pi/180 :' pi converti en radian
rem ========================================================================================= rem UTILISATION DES VARIABLES: rem r = rayon du cercle rem cx = position en X du centre du cercle rem cy = position en Y du centre du cercle rem ad = angle en degrés à partir du centre (pour calcul du sinus et du cosinus) rem px = position en X d°un point du cercle de rayon r par rapport à l°angle ad rem py = position en Y d°un point du cercle de rayon r par rapport à l°angle ad rem s = sin(ad*pir) sinus de l°angle ad converti en radian pour calcul de py sur l°axe Y rem c = cos(ad*pir) cosinus de l°angle ad converti en radian pour calcul de px sur l°axe X rem ==========================================================================================
full_space 0 : color 0,0,0,0 ' font_color 0,255,255,255 :' pour visualiser les valeurs de la ligne 41, mais perturbe l'affichage 2d_pen_color 255,255,255
' la commande ci_dessous ne fonctionne pas si la ligne 20 est en fonction 2d_circle 200,200,50 :' dessiner un cercle avec la commande Panoramic 2d_circle
' définir un cercle de rayon r positionné en cx,cy r=100 :' rayon du cercle cx=(screen_x/2)-int(r/2) :' centre de l'écran en X cy=(screen_y/2)-int(r/2) :' centre de l'écran en Y
' la commande ci_dessous ne fonctionne pas si la ligne 20 est en fonction 2d_point cx,cy:' affiche le centre du cercle (ne fonctionne pas si ligne 20 en fonction)
' dessiner le cercle point par point for ad=1 to 360 2d_pen_color rnd(255),255,255 :' ton bleu_vert c=cos(ad*pir) : s=sin(ad*pir) px=cx+(r*c) :py=cy+(r*s) 2d_point px,py ' print px: print py :' visible si ligne 20 en fonction pause 1: ' pour visualiser la progression next ad
END
A+ | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Premier pas en trigonométrie Ven 3 Juil 2015 - 9:52 | |
| bonjour à tous,
c'est tout bon jean-claude.
Pour le pb de "font_color N,R,G,B", le numéro "N" de l'objet systeme doit être plus grand que zéro, c'est précisé dans l'aide. Si tu veux voir l'affichage, change la couleur de fond du form car le texte s'écrit en noir par défaut. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Premier pas en trigonométrie Ven 3 Juil 2015 - 11:02 | |
| Merci Silverman pour ta réponse.
Je suis bien content d'être dans le coup. Comme tu l'as compris, j'apprend la "trigo" appliquée à Panoramic.
Pour ce qui est de FONT_COLOR, tu as raison, il faut que le numéro d'objet soit >0, et j'ajoute: il ne s'applique pas à FORM. Comme quoi, il faut lire la doc quand on a un souci avec une commande. Mais ça c'est pas mon problème dans ce sujet.
Prochaine étape: dessiner des cercles contiguës dont le centre est sin et cos du premier cercle.
A+ | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Premier pas en trigonométrie Ven 3 Juil 2015 - 12:29 | |
| Bravo Jean Claude, tu as tout compris ! Maintenant je te donne un exercice de tracer d’une ellipse. Ne fronce pas les sourcils : c’est tout aussi simple. Je te rappelle que le cercle est aussi une ellipse (un peu particulière) comme le carré qui est aussi un rectangle. Voici l’équation d’une ellipse centrée sur le point (cx, cy) : Px = cx + R1 * cos(a) Py = cy + R2 * sin(a) Avec : Cx et cy : coordonnées du centre de l’ellipse R1 : demi-axe (c’est le rayon) horizontal de l’ellipse R2 : demi-axe (c’est le rayon) vertical de l’ellipse. a : angle variant de 0 à 360° (soit de 0 à 2*pi) Si R1 > R2 : l’ellipse est ‘allongée’, c-à-d plus large que haute Si R1 < R2 : l’ellipse est ‘haute’, c-à-d plus haute que large Si R1 = R2 on retrouve notre cercle. Allez ! Au boulot. Je ramasserai la copie tout à l’heure. T'en fait pas, tu auras une bonne note Edit : Ligne 5 - Code:
-
pir = pi/180 :' pi converti en radian Je comprends ce que tu voulais dire, mais tu l’as dit pas correctement. J’aurais préféré : facteur de conversion de degrés en radians.Mais bon, tu l’as utilisé à bon escient, alors je sors ... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Premier pas en trigonométrie Ven 3 Juil 2015 - 14:00 | |
| Merci Papydall, Ton ton professoral me plaît. Hi Hi, Tonton Papyprof. Pour le tracé de l'ellipse, je vois que le boulot est déjà pratiquement fait. Mais sous cette forme, je vais devoir écrire le code, et c'est bien ce que je souhaite car un code tout prêt ne m'aurait pas aidé. Je le ferais dès que j'en aurai terminé avec un petit code en cours. Pour " facteur de conversion de degrés en radians.", là aussi bravo, c'est exactement l'esprit de ce post. A savoir vérifier aussi les commentaires, car je compte conserver ces codes pour pouvoir me replonger dedans. A+ | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Premier pas en trigonométrie Ven 3 Juil 2015 - 17:07 | |
| @Papydall, à corriger - Code:
-
' premiers pas en trigonométrie (3) ' dessiner une ellipse
dim pi,pir,r1,cx,cy,ad,s,c,px,py dim r2,ad2,px2,py2,cx2,cy2 pi = acos(-1) :' définition de pi pir = pi/180 :' facteur de conversion de degrés en radians
rem ======================================================================================= rem UTILISATION DES VARIABLES: rem r1 = rayon du cercle rem cx = position en X du centre du cercle rem cy = position en Y du centre du cercle rem ad = angle en degrés à partir du centre (pour calcul du sinus et du cosinus) rem px = position en X d°un point du cercle de rayon r par rapport à l°angle ad rem py = position en Y d°un point du cercle de rayon r par rapport à l°angle ad rem s = sin(ad*pir) sinus de l°angle ad converti en radian pour calcul de py sur l°axe Y rem c = cos(ad*pir) cosinus de l°angle ad converti en radian pour calcul de px sur l°axe X rem =======================================================================================
full_space 0 : color 0,0,0,0 caption 0,"[Echap] pour sortir" ' font_color 0,255,255,255 2d_pen_color 255,255,255
rem ================================================================ Exercice (Papydall) == rem Voici l’équation d’une ellipse centrée sur le point (cx, cy) : rem Px = cx + R1 * cos(a) rem Py = cy + R2 * sin(a) rem Avec : rem Cx et cy : coordonnées du centre de l’ellipse rem R1 : demi-axe (c’est le rayon) horizontal de l’ellipse rem R2 : demi-axe (c’est le rayon) vertical de l’ellipse. rem a : angle variant de 0 à 360° (soit de 0 à 2*pi)
rem Si R1 > R2 : l’ellipse est ‘allongée’, c-à-d plus large que haute rem Si R1 < R2 : l’ellipse est ‘haute’, c-à-d plus haute que large rem Si R1 = R2 on retrouve notre cercle. rem =======================================================================================
' définir le point cx,cy r1=100 :' rayon du cercle cx=(screen_x/2)-int(r1/2)+16 :' centre de l'écran en X (16 por W8) cy=(screen_y/2)-int(r1/2)+31 :' centre de l'écran en Y (31 pour W8)
' 2d_point cx,cy:' affiche le centre du cercle (ne fonctionne pas si ligne 20 en fonction)
' dessiner plusieurs cercles (r1=20) point par point à partir du cercle (r1=100) ' si r1=100 et r2=20 step=24
r1=400 : r2=80 :' ellipse "horizontale" ' r2=400 : r1=80 :' ellipse "verticale" ' r1=400 : r2=400 :' cercle
for ad=1 to 360 :' step 1 if scancode<>0 then terminate 2d_pen_color rnd(255),rnd(255),255 c=cos(ad*pir) : s=sin(ad*pir) px=cx+(r1*c) :py=cy+(r2*s) 2d_point px,py pause 1 next ad
END
BON, OK, quand on a l'équation c'est facile. A+ | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Premier pas en trigonométrie Ven 3 Juil 2015 - 18:24 | |
| C'est fou comme on se prend au jeu, - Code:
-
' premiers pas en trigonométrie (4) ' dessiner une figure à partir d'une ellipse
dim pi,pir,r1,cx,cy,ad,s,c,px,py dim r2,ad2,px2,py2,cx2,cy2 dim r3,r4 pi = acos(-1) :' définition de pi pir = pi/180 :' facteur de conversion de degrés en radians
rem ======================================================================================= rem UTILISATION DES VARIABLES: rem r1 = rayon du cercle rem cx = position en X du centre du cercle rem cy = position en Y du centre du cercle rem ad = angle en degrés à partir du centre (pour calcul du sinus et du cosinus) rem px = position en X d°un point du cercle de rayon r par rapport à l°angle ad rem py = position en Y d°un point du cercle de rayon r par rapport à l°angle ad rem s = sin(ad*pir) sinus de l°angle ad converti en radian pour calcul de py sur l°axe Y rem c = cos(ad*pir) cosinus de l°angle ad converti en radian pour calcul de px sur l°axe X rem =======================================================================================
full_space 0 : color 0,0,0,0 caption 0,"[Echap] pour sortir" ' font_color 0,255,255,255 2d_pen_color 255,255,255
rem ================================================================ Exercice (Papydall) == rem Voici l’équation d’une ellipse centrée sur le point (cx, cy) : rem Px = cx + R1 * cos(a) rem Py = cy + R2 * sin(a) rem Avec : rem Cx et cy : coordonnées du centre de l’ellipse rem R1 : demi-axe (c’est le rayon) horizontal de l’ellipse rem R2 : demi-axe (c’est le rayon) vertical de l’ellipse. rem a : angle variant de 0 à 360° (soit de 0 à 2*pi)
rem Si R1 > R2 : l’ellipse est ‘allongée’, c-à-d plus large que haute rem Si R1 < R2 : l’ellipse est ‘haute’, c-à-d plus haute que large rem Si R1 = R2 on retrouve notre cercle. rem =======================================================================================
' définir le point cx,cy r1=100 :' rayon du cercle cx=(screen_x/2)-int(r1/2)+16 :' centre de l'écran en X (16 por W8) cy=(screen_y/2)-int(r1/2)+31 :' centre de l'écran en Y (31 pour W8)
' 2d_point cx,cy:' affiche le centre du cercle (ne fonctionne pas si ligne 20 en fonction)
' dessiner plusieurs cercles (r1=20) point par point à partir du cercle (r1=100) ' si r1=100 et r2=20 step=24
' r1=400 : r2=80 :' ellipse "horizontale" ' r2=400 : r1=80 :' ellipse "verticale" r1=200 : r2=200 :' cercle r3=400 : r4=150 :' ellipses du pourtour for ad=1 to 360 step 10 if scancode<>0 then terminate 2d_pen_color rnd(255),rnd(255),255 c=cos(ad*pir) : s=sin(ad*pir) px=cx+(r1*c) :py=cy+(r2*s) ' 2d_point px,py cx2=px : cy2=py for ad2=1 to 360 :' step 10 if scancode<>0 then terminate 2d_pen_color rnd(255),rnd(255),255 c=cos(ad2*pir) : s=sin(ad2*pir) px2=cx2+(r3*c) :py2=cy2+(r4*s) 2d_point px2,py2 ' pause 1 next ad2 next ad
END
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Premier pas en trigonométrie Ven 3 Juil 2015 - 18:32 | |
| Reprise de ton premier code pour en faire un truc coloré - Code:
-
' premiers pas en trigonométrie
dim pi,pir,cx,cy,i pi = acos(-1) :' définition de pi pir = pi/180 :' pi converti en radian
rem ========================================================================================= rem UTILISATION DES VARIABLES: rem cx = position en X du centre de l'écran rem cy = position en Y du centre de l'écran rem ad = angle en degrés à partir du centre (pour calcul du sinus et du cosinus) rem px = position en X d°un point du cercle de rayon r par rapport à l°angle ad rem py = position en Y d°un point du cercle de rayon r par rapport à l°angle ad rem s = sin(ad*pir) sinus de l°angle ad converti en radian pour calcul de py sur l°axe Y rem c = cos(ad*pir) cosinus de l°angle ad converti en radian pour calcul de px sur l°axe X rem ==========================================================================================
full_space 0 : color 0,0,0,0
cx=(screen_x/2) : cy=(screen_y/2) :' centre de l'écran en X et Y ' définir un cercle de rayon r positionné en cx,cy de 3 pixels d'épaisseur for i = 5 to 600 step 6 cercle(cx,cy,i,8, (i+100)/3,80,(255-i/3)) next i end
rem ========================================================================================= rem UTILISATION DES VARIABLES: rem CentreX = position en X du centre du cercle rem CentreY = position en Y du centre du cercle rem r = rayon du cercle rem ==========================================================================================
SUB Cercle(CentreX,CentreY,r,W , cr,cv,cb) dim_local ad,s,c,px,py, opx,opy ' la commande ci_dessous ne fonctionne pas si la ligne 20 est en fonction 2d_pen_width W : 2d_point CentreX,CentreY:' affiche le centre du cercle (ne fonctionne pas si ligne 20 en fonction) ' dessiner le cercle point par point for ad=0 to 360 step 6 2d_pen_color cr,cv,cb :' ton bleu_vert c=cos(ad*pir) : s=sin(ad*pir) px=CentreX+(r*c) :py=CentreY+(r*s) if ad > 0 then 2d_line opx,opy,px,py opx = px : opy = py ' print px: print py :' visible si ligne 20 en fonction pause 1: ' pour visualiser la progression next ad END_SUB | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Premier pas en trigonométrie Ven 3 Juil 2015 - 18:40 | |
| C'est ça qui est merveilleux, avec de l'imagination on fait des trucs supers. Un autre à base d'ellipse (de cercles). - Code:
-
' premiers pas en trigonométrie (4) ' dessiner une figure à partir d'une ellipse
dim pi,pir,r1,cx,cy,ad,s,c,px,py dim r2,ad2,px2,py2,cx2,cy2 dim r3,r4 pi = acos(-1) :' définition de pi pir = pi/180 :' facteur de conversion de degrés en radians
rem ======================================================================================= rem UTILISATION DES VARIABLES: rem r1 = rayon du cercle rem cx = position en X du centre du cercle rem cy = position en Y du centre du cercle rem ad = angle en degrés à partir du centre (pour calcul du sinus et du cosinus) rem px = position en X d°un point du cercle de rayon r par rapport à l°angle ad rem py = position en Y d°un point du cercle de rayon r par rapport à l°angle ad rem s = sin(ad*pir) sinus de l°angle ad converti en radian pour calcul de py sur l°axe Y rem c = cos(ad*pir) cosinus de l°angle ad converti en radian pour calcul de px sur l°axe X rem =======================================================================================
full_space 0 : color 0,0,0,0 caption 0,"[Echap] pour sortir" ' font_color 0,255,255,255 2d_pen_color 255,255,255
rem ================================================================ Exercice (Papydall) == rem Voici l’équation d’une ellipse centrée sur le point (cx, cy) : rem Px = cx + R1 * cos(a) rem Py = cy + R2 * sin(a) rem Avec : rem Cx et cy : coordonnées du centre de l’ellipse rem R1 : demi-axe (c’est le rayon) horizontal de l’ellipse rem R2 : demi-axe (c’est le rayon) vertical de l’ellipse. rem a : angle variant de 0 à 360° (soit de 0 à 2*pi)
rem Si R1 > R2 : l’ellipse est ‘allongée’, c-à-d plus large que haute rem Si R1 < R2 : l’ellipse est ‘haute’, c-à-d plus haute que large rem Si R1 = R2 on retrouve notre cercle. rem =======================================================================================
' définir le point cx,cy r1=100 :' rayon du cercle cx=(screen_x/2)-int(r1/2)+16 :' centre de l'écran en X (16 por W8) cy=(screen_y/2)-int(r1/2)+31 :' centre de l'écran en Y (31 pour W8)
' 2d_point cx,cy:' affiche le centre du cercle (ne fonctionne pas si ligne 20 en fonction)
' dessiner plusieurs cercles (r1=20) point par point à partir du cercle (r1=100) ' si r1=100 et r2=20 step=24
' r1=400 : r2=80 :' ellipse "horizontale" ' r2=400 : r1=80 :' ellipse "verticale" r1=200 : r2=200 :' cercle r3=200 : r4=200 :' ellipses du pourtour for ad=1 to 360 step 10 if scancode<>0 then terminate 2d_pen_color rnd(255),rnd(255),255 c=cos(ad*pir) : s=sin(ad*pir) px=cx+(r1*c) :py=cy+(r2*s) ' 2d_point px,py cx2=px : cy2=py for ad2=1 to 360 step 1 if scancode<>0 then terminate 2d_pen_color rnd(255),rnd(255),255 c=cos(ad2*pir) : s=sin(ad2*pir) px2=cx2+(r3*c) :py2=cy2+(r4*s) 2d_point px2,py2 ' pause 1 next ad2 next ad
END
A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Premier pas en trigonométrie Ven 3 Juil 2015 - 20:08 | |
| Une petite variation de ton code - Code:
-
' premiers pas en trigonométrie (4) ' dessiner une figure à partir d'une ellipse
dim pi,pir,r1,cx,cy,ad,s,c,px,py dim r2,ad2,px2,py2,cx2,cy2, opx2, opy2 dim r3,r4 pi = acos(-1) :' définition de pi pir = pi/180 :' facteur de conversion de degrés en radians
rem ======================================================================================= rem UTILISATION DES VARIABLES: rem r1 = rayon du cercle rem cx = position en X du centre du cercle rem cy = position en Y du centre du cercle rem ad = angle en degrés à partir du centre (pour calcul du sinus et du cosinus) rem px = position en X d°un point du cercle de rayon r par rapport à l°angle ad rem py = position en Y d°un point du cercle de rayon r par rapport à l°angle ad rem s = sin(ad*pir) sinus de l°angle ad converti en radian pour calcul de py sur l°axe Y rem c = cos(ad*pir) cosinus de l°angle ad converti en radian pour calcul de px sur l°axe X rem =======================================================================================
full_space 0 : color 0,0,0,0
rem ================================================================ Exercice (Papydall) == rem Voici l’équation d’une ellipse centrée sur le point (cx, cy) : rem Px = cx + R1 * cos(a) rem Py = cy + R2 * sin(a) rem Avec : rem Cx et cy : coordonnées du centre de l’ellipse rem R1 : demi-axe (c’est le rayon) horizontal de l’ellipse rem R2 : demi-axe (c’est le rayon) vertical de l’ellipse. rem a : angle variant de 0 à 360° (soit de 0 à 2*pi)
rem Si R1 > R2 : l’ellipse est ‘allongée’, c-à-d plus large que haute rem Si R1 < R2 : l’ellipse est ‘haute’, c-à-d plus haute que large rem Si R1 = R2 on retrouve notre cercle. rem =======================================================================================
' définir le point cx,cy cx=(screen_x/2)-int(r1/2)-16 :' centre de l'écran en X (16 por W8) cy=(screen_y/2)-int(r1/2)-20 :' centre de l'écran en Y (31 pour W8)
' dessiner plusieurs cercles (r1=20) point par point à partir du cercle (r1=100)
2d_pen_width 10 r1=200 : r2=200 :' cercle r3=200 : r4=200 :' ellipses du pourtour for ad=1 to 360 step 5 c=cos(ad*pir) : s=sin(ad*pir) px=cx+(r1*c) :py=cy+(r2*s) cx2=px : cy2=py for ad2=0 to 360 step 3 2d_pen_color px/4,abs( ad - 180), py/3 c=cos(ad2*pir) : s=sin(ad2*pir) px2=cx2+(r3*c) :py2=cy2+(r4*s) if ad2 > 0 then 2d_line opx2,opy2,px2,py2 opx2 = px2 : opy2 = py2 next ad2 next ad
END | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Premier pas en trigonométrie Ven 3 Juil 2015 - 22:17 | |
| - Code:
-
dim pi,p,xc,yc,r,r1,a,px,py,n pi = acos(-1) : p = pi/180 full_space 0 xc = width(0)/2 : yc = height(0)/2 r = 250 : ' rayon du grand cercle n = 20 : ' Nombre des petits cercles (à modifier pour voir) ' pour l'esthétique, choisir n telle que la division de 360 par n tombe juste. 2d_pen_width 2 for a = 0 to 360 px = xc+r*cos(a*p) : py = yc+r*sin(a*p) : ' coordonnées des points du grand cercle if mod(a,int(360/n)) = 0 : ' si l'angle a est un multiple de n ' placer les n petits cercles sur le périmètre du grand r1 = pi*r/n : ' rayon des petits cercles 2d_fill_color 255,0,0 : 2d_fill_on : 2d_circle px,py,r1 end_if next a 2d_flood xc,yc,255,255,0
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Premier pas en trigonométrie Sam 4 Juil 2015 - 6:03 | |
| J'ai fais une petites variation de ton code - Code:
-
dim pi,p,xc,yc,r,r1,a,px,py,n pi = acos(-1) : p = pi/180 full_space 0 xc = width(0)/2 : yc = height(0)/2 r = 250 : ' rayon du grand cercle n = 18 : ' Nombre des petits cercles (à modifier pour voir) ' pour l'esthétique, choisir n telle que la division de 360 par n tombe juste. 2d_pen_width 4 : 2d_fill_on : 2d_pen_color 120,55,0 for a = 0 to 360 step (360 / n) px = xc+r*cos(a*p) : py = yc+r*sin(a*p) : ' coordonnées des points du grand cercle ' placer les n petits cercles sur le périmètre du grand r1 = pi*r/n : ' rayon des petits cercles 2d_fill_color abs(180 - a) + 50,0,0 : 2d_circle px,py,r1 next a 2d_flood xc,20,0,0,0 | |
| | | Parpaiun
Nombre de messages : 192 Age : 85 Localisation : HERAULT Date d'inscription : 15/04/2015
| Sujet: Revue du sujet Sam 4 Juil 2015 - 7:33 | |
| | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Premier pas en trigonométrie Sam 4 Juil 2015 - 7:55 | |
| | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Premier pas en trigonométrie Sam 4 Juil 2015 - 11:03 | |
| - Parpaiun a écrit:
- il ne se plaindra plus que je l'aie embêté à mes débuts avec plusieurs de mes programmes trigo !
@Parpaiun Cherche une phrase, une seule, où je dis que tu m'embêtes avec tes programmes de trigonométrie et je te ferais des exucuses. Et merci pour tes encouragements. A+ | |
| | | Parpaiun
Nombre de messages : 192 Age : 85 Localisation : HERAULT Date d'inscription : 15/04/2015
| Sujet: Revue du sujet Sam 4 Juil 2015 - 18:45 | |
| Pardon jean_claude pour ma méchante boutade ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Premier pas en trigonométrie Sam 4 Juil 2015 - 19:51 | |
| Merci Parpaiun, je ne voulais pas passer pour un vilain petit canard. @tous, Pour vous rafraîchir, je vous offre un magnifique soleil. - Code:
-
' canicule
dim pi,pir,r,cx,cy,ad,s,c,px,py,n%,stp%,cr,cv,cb dim r2,ad2,px2,py2,cx2,cy2 pi = acos(-1) :' définition de pi pir = pi/180 :' facteur de conversion de degrés en radians
rem ========================================================================================= rem UTILISATION DES VARIABLES: rem r = rayon du cercle rem cx = position en X du centre du cercle rem cy = position en Y du centre du cercle rem ad = angle en degrés à partir du centre (pour calcul du sinus et du cosinus) rem px = position en X d°un point du cercle de rayon r par rapport à l°angle ad rem py = position en Y d°un point du cercle de rayon r par rapport à l°angle ad rem s = sin(ad*pir) sinus de l°angle ad converti en radian pour calcul de py sur l°axe Y rem c = cos(ad*pir) cosinus de l°angle ad converti en radian pour calcul de px sur l°axe X rem ==========================================================================================
full_space 0 : color 0,0,0,0 caption 0,"[Echap] pour sortir" 2d_pen_color 255,255,255
' définir un cercle de rayon r positionné en cx,cy r=100 :' rayon du cercle cx=(screen_x/2)-int(r/2)+16 :' centre de l'écran en X (16 por W8) cy=(screen_y/2)-int(r/2)+31 :' centre de l'écran en Y (31 pour W8)
r2=20 : r=400 : stp%=15 : cr=5 : cv=5 : cb=5 for n%=1 to 14 caption 0,str$(n%)+"/14 * [Echap] pour sortir" r=r-18 : stp%=stp%-1 cr=cr+20 : cv=cv+20 : cb=cb+10 if cr > 255 then cr=255 : cv=255 :cb=cb+10 : r=r-10 for ad=1 to 360 step stp% if scancode<>0 then terminate 2d_pen_color cr,cv,cb c=cos(ad*pir) : s=sin(ad*pir) px=cx+(r*c) :py=cy+(r*s) cx2=px : cy2=py for ad2=1 to 360 if scancode<>0 then terminate c=cos(ad2*pir) : s=sin(ad2*pir) px2=cx2+(r2*c) :py2=cy2+(r2*s) 2d_line int(cx),int(cy),int(cx2),int(cy2) ' 2d_line int(px),int(py),int(px2),int(py2) :' une autre image next ad2 next ad next n% caption 0,"Terminé" END
A+ | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Premier pas en trigonométrie Sam 4 Juil 2015 - 21:17 | |
| Heu ! A ce rythme-là, tu vas rendre jaloux plus d’un ! Bon divertissement ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Premier pas en trigonométrie Lun 6 Juil 2015 - 2:17 | |
| @Jean Claude Après les cercles et les ellipses, tu veux bien plonger dans les spirales ? Cette fois-ci les équations à utiliser sont des équations polaires. Les équations polaires sont plus simples à exprimer que les équations paramétriques. Tu trouveras les formules de passage des coordonnées polaires aux coordonnées cartésiennes. En fait le travail est à moitié mâché. C’est à toi de mâcher le reste car je n'ai plus toutes mes dents ! - Code:
-
rem ============================================================================ rem SPIRALE rem ============================================================================ rem Equation polaire de la spirale (centrée sur l origine) : Rho = tetha rem tetha angle variant de 0 = 2*n*pi radians rem n : nombre de tours de la spirale rem Si l angle tetha est négatif, la spirale tournera dans le sens anti-horaire rem Si l angle tetha est positif, la spirale tournera dans le sens horaire rem ============================================================================ rem Passage des coordonnées polaires aux coordonnées cartésiennes : rem X = Rho*COS(tetha) rem Y = Rho*SIN(tetha) rem ============================================================================ rem Pour la spirale centrée sur XC,YC, la formule devient : rem X = XC + Rho*COS(tetha) rem Y = YC + RHO*SIN(tetha) rem ============================================================================
rem Spirale logarithmique d équation : rho = exp(a*tetha) rem Prendre pour la constante a, la valeur a = .088 par exemple rem tetha angle variant de 0 à 2*n*pi radians rem n : nombre de tours de la spirale rem ============================================================================
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Premier pas en trigonométrie Lun 6 Juil 2015 - 7:58 | |
| Vous me faites mal à la tête quand j'essaye de vous suivre alors je me contente de regarder, mais c'est beau | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Premier pas en trigonométrie Lun 6 Juil 2015 - 10:06 | |
| Je rends ma copie ! - Code:
-
rem ============================================================================ rem SPIRALE rem ============================================================================ rem Equation polaire de la spirale (centrée sur l origine) : Rho = tetha rem tetha angle variant de 0 = 2*n*pi radians rem n : nombre de tours de la spirale rem Si l angle tetha est négatif, la spirale tournera dans le sens anti-horaire rem Si l angle tetha est positif, la spirale tournera dans le sens horaire rem ============================================================================ rem Passage des coordonnées polaires aux coordonnées cartésiennes : rem X = Rho*COS(tetha) rem Y = Rho*SIN(tetha) rem ============================================================================ rem Pour la spirale centrée sur XC,YC, la formule devient : rem X = XC + Rho*COS(tetha) rem Y = YC + RHO*SIN(tetha) rem ============================================================================
rem Spirale logarithmique d équation : rho = exp(a*tetha) rem Prendre pour la constante a, la valeur a = .088 par exemple rem tetha angle variant de 0 à 2*n*pi radians rem n : nombre de tours de la spirale rem ============================================================================
full_space 0 : color 0,0,0,0 2d_pen_color 255,255,255
dim Rho,tetha,a,pi,pir dim n,x,y,xc,yc,nb% pi = acos(-1) : pir = pi/180 dim cr,cv,cb
' xc=400 : yc=400 xc=(screen_x/2) : yc=(screen_y/2)-31 a=0.001 n=5000 for nb%=1 to n caption 0,str$(n-nb%) if scancode<>0 then exit_for cr=cr+28 : cv=cv+20 : cb=cb+12 if cr>255 then cr=12 if cv>255 then cv=11 if cb>255 then cb=10 2d_pen_color cr,cv,cb tetha=((2*n)*pir)+(nb%/10) : Rho=(exp(a*tetha))+(nb%/10) x = xc + (Rho*COS(tetha)):' + (nb%/30) y = yc + (Rho*SIN(tetha)):' + (nb%/20) 2d_point x,y pause 1: ' pour visualiser la progression next nb% caption 0,"terminé" end
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Premier pas en trigonométrie Lun 6 Juil 2015 - 10:15 | |
| Heu Jean-Claude, ce n'est plus de l'initiation là, donc c'est hors sujet Moi, je dis que c'est déjà du cours avancé... Dis avec tous tes progrès en trigo tu pourrais en faire un article pour continuer à banaliser l'usage de ces choses et avec la bénédiction de Papydall, tu pourrais te servir de son programme pour illustrer ton article (et / ou en faire la première partie) ? | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Premier pas en trigonométrie Lun 6 Juil 2015 - 11:59 | |
| Salut tout le monde. @Jean Claude Bravo ! C’est parfaitement parfait. Tu as rendu jaloux Jicehel Suggestion : remplace 2d_point par 2d_poly_to] Modifie les valeurs de Y en les multipliant par 0.5 (c-à-d une division par 2) - Code:
-
y = yc + .5*(Rho*SIN(tetha))
2d_poly_to va donner un tracé continu plus beau à voir. Le rapport sur Y donnera une figure aplatie mieux adapté aux écrans. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Premier pas en trigonométrie Lun 6 Juil 2015 - 12:14 | |
| Faire un article ? Pour cela il faudrait que je maîtrise le sujet, ce qui est loin d’être le cas. J'avoue que, autant j'ai compris la première partie "SIN, COS", autant je n'ai rien pigé à la spirale. C'est pratiquement un coup de bol (Néanmoins, mes débuts ont servi...), que j'ai réussi à faire une spirale. Ensuite j'ai bidouillé jusqu’à obtenir un résultat acceptable, sans vraiment comprendre ce que je faisais. Toutefois, je suis particulièrement fier de la colorisation car j'ai réussi utiliser les couleurs de façon à ajouter d'autres spirales à la spirale principale. Pour les artistes, vous pouvez modifier les divers paramètres du code (dont certains sont encore visibles) et vous verrez des résultats surprenants. Exemple: - Code:
-
full_space 0 : color 0,0,0,0 2d_pen_color 255,255,255
dim Rho,tetha,a,pi,pir dim n,x,y,xc,yc,nb% pi = acos(-1) : pir = pi/180 dim cr,cv,cb
xc=300 :' yc=100 ' xc=(screen_x/2) yc=(screen_y/2)-31
a=0.005 n=2500 for nb%=1 to n caption 0,str$(n-nb%) if scancode<>0 then exit_for cr=cr+24 : cv=cv+16 : cb=cb+8 if cr>255 then cr=12 if cv>255 then cv=11 if cb>255 then cb=10 2d_pen_color cr,cv,cb tetha=((2*n)*pir)+(nb%/10) : Rho=(exp(a*tetha))+(nb%/10) x = xc + (Rho*COS(tetha)) + (nb%/11) y = yc + (Rho*SIN(tetha)) + (nb%/100000) 2d_point x,y pause 1: ' pour visualiser la progression next nb% a=0.004 : xc=302 for nb%=1 to n caption 0,str$(n-nb%) if scancode<>0 then exit_for cr=cr+24 : cv=cv+16 : cb=cb+8 if cr>255 then cr=12 if cv>255 then cv=11 if cb>255 then cb=10 2d_pen_color cr,cv,cb tetha=((2*n)*pir)+(nb%/10) : Rho=(exp(a*tetha))+(nb%/10) x = xc + (Rho*COS(tetha)) + (nb%/11) y = yc + (Rho*SIN(tetha)) + (nb%/10000) 2d_point x,y pause 1: ' pour visualiser la progression next nb% a=0.004 : xc=304 for nb%=1 to n caption 0,str$(n-nb%) if scancode<>0 then exit_for cr=cr+12 : cv=cv+8 : cb=cb+4 if cr>255 then cr=6 if cv>255 then cv=4 if cb>255 then cb=2 2d_pen_color cr,cv,cb tetha=((2*n)*pir)+(nb%/10) : Rho=(exp(a*tetha))+(nb%/10) x = xc + (Rho*COS(tetha)) + (nb%/11) y = yc + (Rho*SIN(tetha)) + (nb%/1000) 2d_point x,y pause 1: ' pour visualiser la progression next nb% caption 0,"terminé" end
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Premier pas en trigonométrie Lun 6 Juil 2015 - 12:16 | |
| On viens de se croiser Papydall,
Je vais faire des essais avec tes suggestions...
A+ | |
| | | Contenu sponsorisé
| Sujet: Re: Premier pas en trigonométrie | |
| |
| | | | Premier pas en trigonométrie | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |