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 |
|
|
| Tracé d'un ellipsoïde | |
| | Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Tracé d'un ellipsoïde Mar 22 Mar 2016 - 5:31 | |
| - Code:
-
rem ============================================================================ rem Ellipsoïde rem ============================================================================
Init() Calcul() caption 0,"Terminé" end rem ============================================================================ SUB Init() dim a,b,c,x,y,z,z1,z2,xc,yc,u1,v1, alfa,beta,zoom,u(3),v(3),w(3),xp(3) width 0,1000 : height 0,800 : color 0,0,255,255 picture 10 : width 10,width(0)-100 : height 10,height(0)-100 top 10,20 : left 10,50 : 2d_target_is 10 : 2d_clear : 2d_pen_color 255,0,0 color 10,0,0,0 degrees caption 0,"Veuillez patienter <ESC> pour arrêter" xc = width(10)/2 : yc = height(10)/2 Alfa = 22.5 : ' pi/8 Beta = 45 : ' pi/4 Zoom = 25 : z1 = zoom/width(10) : z2 = zoom/height(10) u(1) = COS(Alfa) * COS(Beta) : u(2) = SIN(Alfa) * COS(Beta) : u(3) = SIN(Beta) v(1) = 0-SIN(Alfa) : v(2) = COS(Alfa) : v(3) = 0 w(1) = 0-COS(Alfa) * SIN(Beta) : w(2) = 0-SIN(Alfa)* SIN(Beta):w(3)= COS(Beta) END_SUB rem ============================================================================ SUB Calcul() for u1 = 0 to 360/2 step 2 : ' modifier le step selon la vitesse if u1 = 0 then 2d_pen_color 0,0,0 :else : 2d_pen_color 255,0,0 for v1 = 1 to 360 step 2 : ' ou le finesse du tracé Ellipsoide(20,20,30) ' Ellipsoide(10,20,30) ' Ellipsoide(20,20,5) ' Ellipsoide(5,5,10) ' Ellipsoide(10,10,10) ' Fonction(20,15,5) Tracer() if scancode = 27 then terminate next v1 next u1 END_SUB rem ============================================================================ SUB Tracer() dim_local xe,ye xp(1) = u(1) * x + u(2) * y + u(3) * z xp(2) = v(1) * x + v(2) * y + v(3) * z xp(3) = w(1) * x + w(2) * y + w(3) * z xe = xc * xp(2) * z1 + yc : ye = yc *(1-xp(3) * z2) 2d_poly_to xe,ye : display END_SUB rem ============================================================================ ' Ellipsoïde ' Si a = b : ellipsoïde de révolution applati (forme de galet ou de soucoupe volonte) ' Si b = c : ellipsoïde de révolution allongé (forms de ballon de rugby ou de cigare) ' Si a = b = c : Sphère SUB Ellipsoide(a,b,c) X = a * cos(v1) * cos(u1) Y = b * cos(v1) * sin(u1) Z = c * sin(v1) END_SUB rem ============================================================================ SUB Fonction(a,b,c) x = a*sin(u1)*cos(v1) y = b*sin(u1)*sin(v1) z = c*cos(u1)*log(u1+1) END_SUB rem ============================================================================
- Spoiler:
| |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Not correct expression Mar 22 Mar 2016 - 9:15 | |
| Bonjour Papydall
Ton code sur l'ellipsoïde s'arrête à degrees. Enfin, sur mon ordi ! Ca le faisait déjà sur d'autres codes que tu as postés.
(48) not correct expression
Au plaisir de te lire. Cordialement. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Tracé d'un ellipsoïde Mar 22 Mar 2016 - 13:09 | |
| Bonjour / bonsoir Ouf_ca_passe - ouf_ca_passe a écrit:
- Ton code sur l'ellipsoïde s'arrête à degrees. Enfin, sur mon ordi !
Ca le faisait déjà sur d'autres codes que tu as postés. Eh bien ça ne passe pas chez toi, tout simplement parce que tu utilises (encore) une version ancienne de Panoramic qui ne reconnait pas l’instruction DEGREES. Cette dernière est implémentée depuis la version V 0.9.27i2. Ce que tu peux faire : 1) Te mettre à jour en téléchargeant la dernière version de Panoramic_Editor. 2) ou, tu modifies le code pour utiliser les radians au lieu de dégrés. Comme tu es gentil, voici le code modifié : il tournera sur ton ordi , parole de Papydall. - Code:
-
rem ============================================================================ rem Ellipsoïde rem code à utiliser pour une version inférieure à V 09.27i2 rem ============================================================================
Init() Calcul() caption 0,"Terminé" end rem ============================================================================ SUB Init() dim a,b,c,x,y,z,z1,z2,xc,yc,u1,v1, alfa,beta,zoom,u(3),v(3),w(3),xp(3) dim pi2,p ' &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& dim pi : ' si votre version de Panoramic_Editor est antérieure à V0.9.27i2 ' laissez cette ligne. ' Sinon supprimez-la ou mettez-la en REM ' &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& width 0,1000 : height 0,800 : color 0,0,255,255 picture 10 : width 10,width(0)-100 : height 10,height(0)-100 top 10,20 : left 10,50 : 2d_target_is 10 color 10,0,0,0 pi = acos(-1) : p = pi/90 : ' <-- = 2° caption 0,"Veuillez patienter <ESC> pour arrêter" xc = width(10)/2 : yc = height(10)/2 pi2 = 2*pi Alfa = pi/8 Beta = pi/4 Zoom = 25 : z1 = zoom/width(10) : z2 = zoom/height(10) u(1) = COS(Alfa) * COS(Beta) : u(2) = SIN(Alfa) * COS(Beta) : u(3) = SIN(Beta) v(1) = 0-SIN(Alfa) : v(2) = COS(Alfa) : v(3) = 0 w(1) = 0-COS(Alfa) * SIN(Beta) : w(2) = 0-SIN(Alfa)* SIN(Beta):w(3)= COS(Beta) END_SUB rem ============================================================================ SUB Calcul() for u1 = 0 to pi2 step p : ' modifier le step selon la vitesse if u1 = 0 then 2d_pen_color 0,0,0 :else : 2d_pen_color 255,0,0 for v1 = 0 to pi2 step p : ' ou le finesse du tracé Ellipsoide(20,20,30) ' Ellipsoide(10,20,30) ' Ellipsoide(20,20,5) ' Ellipsoide(5,5,10) ' Ellipsoide(10,10,10) ' Fonction(20,15,5) Tracer() if scancode = 27 then terminate next v1 next u1 END_SUB rem ============================================================================ SUB Tracer() dim_local xe,ye xp(1) = u(1) * x + u(2) * y + u(3) * z xp(2) = v(1) * x + v(2) * y + v(3) * z xp(3) = w(1) * x + w(2) * y + w(3) * z xe = xc * xp(2) * z1 + yc : ye = yc *(1-xp(3) * z2) 2d_poly_to xe,ye : display END_SUB rem ============================================================================ ' Ellipsoïde ' Si a = b : ellipsoïde de révolution applati (forme de galet ou de soucoupe volonte) ' Si b = c : ellipsoïde de révolution allongé (forms de ballon de rugby ou de cigare) ' Si a = b = c : Sphère SUB Ellipsoide(a,b,c) X = a * cos(v1) * cos(u1) Y = b * cos(v1) * sin(u1) Z = c * sin(v1) END_SUB rem ============================================================================ SUB Fonction(a,b,c) x = a*sin(u1)*cos(v1) y = b*sin(u1)*sin(v1) z = c*cos(u1)*log(u1+1) END_SUB rem ============================================================================
Pour les autres codes dont tu parles, fait la même chose : - Code:
-
dim pi : pi = acos(-1) dim p : p = pi/180
et tu remplaces les angles exprimés en degrés par leur équivalent en radians. J'attends de savoir que ouf ça a passé! Code édité le 24/03/2016 à 00:25
Dernière édition par papydall le Jeu 24 Mar 2016 - 0:25, édité 2 fois (Raison : Problème de [b]2D_CLEAR[/b]) | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Demain Mar 22 Mar 2016 - 15:17 | |
| Je regarderai demain mais pour le moment, ça coince et j'ai dû arrêter avec Ctrl+Alt+Sup. Je n'ai jamais autant fait cette combinaison de touches que depuis que je suis passé à windows 10.
Bonne soirée
| |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Je t'ai envoyé un msg privé Mer 23 Mar 2016 - 13:53 | |
| @ Papydall
Bonjour Je t'ai envoyé un msg privé
Cordialement | |
| | | Pedro
Nombre de messages : 1595 Date d'inscription : 19/01/2014
| Sujet: Ellipsoïde. Mer 23 Mar 2016 - 14:20 | |
| Bonjour.
Le 2d_clear provoque un access violation, bien qu'il soit placé après le 2d_target_is !! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Tracé d'un ellipsoïde Mer 23 Mar 2016 - 14:48 | |
| Salut tout le monde Chez moi la commande 2D_CLEAR ne provoque pas d’erreur. Mais vous pouvez la supprimer purement : elle n’a pas d’effet dans ce code.
NB : J’ai édité le code ci-haut, télécharger et tester. | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| | | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Tracé d'un ellipsoïde Mer 23 Mar 2016 - 18:12 | |
| | |
| | | mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: Tracé d'un ellipsoïde Mer 23 Mar 2016 - 19:35 | |
| Merci une fois encore Papydall je n'arrête pas de répéter à mon fils que les maths sont belles. LA PREUVE est là | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Tracé d'un ellipsoïde Mer 23 Mar 2016 - 20:24 | |
| Tu as parfaitement raison. Que serait la vie sans maths ? Je n'ose même pas y penser! | |
| | | Contenu sponsorisé
| Sujet: Re: Tracé d'un ellipsoïde | |
| |
| | | | Tracé d'un ellipsoïde | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |