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 |
|
|
| Rectangle derviche | |
| | Auteur | Message |
---|
Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Rectangle derviche Lun 18 Fév 2013 - 16:42 | |
| J'ai consulté avec grande attention le code du rectangle "de travers", en fait une jolie rosace. Moi j'essaie désespérément de faire tourner un bête rectangle dessiné "à la main" (2D_LINE) autour de son centre. Ainsi pourrai-je peut-être, à mon niveau, faire évoluer un petit tank à l'écran. Je fais comme ça parce qu'en 3D j'obtiens des choses étranges (le rectangle "pointe" vers un autre objet mais par le côté), et en 2D (PICTURE, SPRITE) ça paraît bien aussi mais il y a toujours une limite. en l'occurence, 3D_ROTATE existe mais pas 2D_ROTATE. Je suis un "dys" du BASIC mais je m'accroche... si,si !!! | |
| | | Invité Invité
| Sujet: Re: Rectangle derviche Lun 18 Fév 2013 - 17:33 | |
| Bonjour Froggy One Je réponds car j'avais déjà posé la question, et JL35 y a répondu. Je pense qu'il s'agit de la même chose ici: rectangle de travers |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Rectangle derviche Lun 18 Fév 2013 - 17:49 | |
| Euh... bon, ne le prenez pas mal mais effectivement la réponse de JL35 me sera plus facile à déchiffrer que ce que j'obtiens en lançant le rectangle de travers . J'imprime, je relis, faut que ça rentre ! en tous cas merci de m'avoir répondu aussi vite !!! | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: rectangle derviche Lun 18 Fév 2013 - 18:04 | |
| Bon ben ça fait un "dys" de moins. Merci à tous, j'ai compris la méthode de JL35. La revanche des nuls en programmation en quelque sorte. YEAH !!! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Rectangle derviche Lun 18 Fév 2013 - 18:28 | |
| En programmation, je sais pas, mais en tout cas je suis nul en langage moderne ! C'est quoi ce truc, un "dys" ??? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 18 Fév 2013 - 19:25 | |
| @ JL35, Rassures toi, tu n'es pas tout seul à avoir du mal avec les langues modernes. Mais une chose est certaine, pour ma part, je suis content de voir "Froggy One" faire une apparition sur le forum. @ Froggy one, N'hésites pas à intervenir, plus on est de fou.... | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Rectangle derviche Lun 18 Fév 2013 - 19:38 | |
| Pour JL35 Le "dys" c'est parce que je suis en train de lire un bouquin écrit par Marie-France GAIGNARD sur la dyslexie, vraie ou prétendue. C'est un témoignage (bouleversant) d'une victime du système scolaire qui ouvre sa boîte d'aide aux gens en difficulté quand elle sort des siennes à... 36 ans. Bon, en bref, un dyslexique c'est quelqu'un qui a de gros problèmes organiques qui l'empêchent de lire, et un dysorthographique quelqu'un qui a les mêmes symptômes... mais rien de grave !!! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Rectangle derviche Lun 18 Fév 2013 - 20:54 | |
| Merci pour les précisions, c'est la première fois que je voyais ça, mais après coup j'ai vu ça sur wikipédia; Dyslexie je connaissais, mais pas l'abréviation (ça aurait pu être aussi bien dysenterie.. ) Bon allez, fin de la parenthèse, on retourne à nos instructions ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Rectangle derviche Lun 18 Fév 2013 - 21:47 | |
| Salut tout le monde. Bienvenue à toi Froggy one. Pour les transformations du plan en général et les rotations en particulier, je vous propose ma modeste contribution. Tout est expliqué dans le code suivant : changements d’échelles, symétries, rotations, cisaillements. Si ça peux rendre service à quelqu’un j’en serais content. Bon, assez de blablabla et voici les choses sérieuses. Prévoyez peut-être un tube de Doliprane, n’est-ce pas Ygeronimi ? - Code:
-
' ****************************************************************************** ' Transformation du plan ' ====================== ' les principales transformations du plan sont : ' la translation, les changements d'échelles, les symétries,les rotations ' et les cisaillements. ' Le calcul matriciel résout tous ces problèmes. ' Soit (x,y) la coordonnée d'un point du plan cartésien. ' on peut considérer cette coordonnée comme une matrice de 1 ligne sur 2 colonnes ' que nous noterons matrice (1X2) (lire matrice 1 croix 2). ' La matrice générale : ' A B ' C D ' est une matrice de 2 lignes sur 2 colonnes et sera notée matrice (2X2). ' Le produit matriciel de la matrice (1X2) et de la matrice (2X2) donne comme ' résultat (A*x+C*y B*x+D*y) ' Donc, tout point du plan (x,y) multiplié par la matrice (2X2) a pour transformé ' un nouveau point du plan (xp,yp) tel que : ' xp = A*x + C*y ' yp = B*x + D*y ' La transformation obtenue dépendra des valeurs données aux variables A,B,C,D. ' ----------------------------------------------------------------------------- ' Pour information: ' ----------------- ' Voici les différentes matrices de transformations: ' ----------------------------------------------------------------------------- ' Les changements d'échelles sont contrôlés par la matrice : ' A 0 ' 0 D ' En effet le produit matriciel donne A*x D*y d'où xp = A*x ; yp = D*y ' ------------------------------------------------------------------------------ ' Les symétries : les matrices qui contrôlent les symétries ne sont que des cas ' particuliers de la matrice changement d'échelles dans laquelle A et/ou D sont ' négatifs. ' La matrice: ' -1 0 ' 0 1 produira une symétrie par rapport à l'axe des Y ' En effet le produit matriciel donne xp = -x ; yp = y ' La matrice: ' 1 0 ' 0 -1 produira une symétrie par rapport à l'axz des X ' En effet, le produit matriciel donne xp = x ; yp = -y ' La matrice: ' -1 0 ' 0 -1 produira une symétrie par rapport aux deux axes c.à.d une symétrie ' centrale par rapport à l'origine. ' En effet, le produit matriciel donne xp = -x ; yp = -y ' ----------------------------------------------------------------------------- ' Les cisaillements: les matrices qui contrôlent les cisaillements sont ' 1 0 ' C 1 donnera un cisaillement en x ' 1 B ' 0 1 donnera un cisaillement en y ' 1 B ' C 1 donnera un cisaillement dans les deux directions ' --------------------------------------------------------------------------- ' Les rotations ' Les matrices qui contrôlent les rotations sont : ' cos(theta) sin(theta) ' -sin(theta) cos(theta) ' Les coefficients A,B,C,D de la matrice générale sont dans ce cas : ' A = cos(theta) ; B = sin(theta) ; C = -sin(theta) ; D = cos(theta) ' Avec theta l'angle de rotation du point autour de l'origine des axes. ' Cet angle est exprimé en RADIANS. ' ******************************************************************************
dim n : n = 4 : ' Nombre des sommets du polygone, ici c'est un carré dim x(n+1),y(n+1) dim A,B,C,D : ' termes de la matrice rotation dim xc,yc : ' coordonnées du centre de l'écran dim theta : ' angle de rotation dim pi,p width 0,640 : height 0,480 caption 0 ,"Rotation d'un polygone autour de l'origine des axes" pi = 4 * atn(1) p = pi/18 : ' essayez avec p = pi/72 ou p = pi/36 ou p = pi/9 ou p = pi/144 xc = 320 : yc = 240 : ' coordonnées du centre de l'écran et aussi centre de rotation
init_polygone() trace_axes() Trace_Polygone() for theta = 0 to 2*pi step p Rotation(theta) wait 100 : ' pour voir la rotation se faire next theta end ' ****************************************************************************** DATA 0,0,150,0,150,100, 0,100 : ' coordonnées des sommets du polygone (ici c'est un carré) ' ****************************************************************************** ' Retourne les coefficients de la matrice(2 X 2)de rotation autour de l'origine SUB Matrice_Rotation(theta) A = cos(theta) : B = sin(theta) : C = 0-sin(theta) : D = cos(theta) END_SUB ' ****************************************************************************** ' Mémorisation des somments du polygone SUB Init_Polygone() dim_local i for i = 1 to n :read x(i):read y(i): next i x(n+1) = x(1) : y(n+1) = y(1) END_SUB ' ****************************************************************************** ' Tracer des axes SUB Trace_Axes() 2d_line 0,yc,2*xc,yc : ' tracer l'axe des X 2d_line xc,0,xc,2*yc : ' tracer l'axe des Y END_SUB ' ****************************************************************************** ' Dessiner le polygone SUB Trace_Polygone() DIM_LOCAL i 2d_poly_from xc+x(1),yc+y(1) for i = 2 to n+1 : 2d_poly_to xc+x(i),yc-y(i) : next i END_SUB ' ****************************************************************************** ' Effectuer une rotation du polygone d'un angle theta en RADIANS ' puis tracer le nouveau polygone SUB Rotation(theta) Matrice_Rotation(theta) Dim_local xp,yp,i xp = A * x(1) + C * y(1) : yp = B * x(1) + D * y(1) 2d_poly_from xc+xp,yc+yp for i = 2 to n + 1 xp = A * x(i) + C * y(i) : yp = B * x(i) + D * y(i) 2d_poly_to xc+xp,yc-yp next i END_SUB '*******************************************************************************
Dernière édition par papydall le Mar 19 Fév 2013 - 1:14, édité 3 fois (Raison : Correction d'une erreur d'orthographe) | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Rectangle derviche Lun 18 Fév 2013 - 22:21 | |
| C'est bien intéressant tout ça, quelques subs à garder précieusement sous le coude.
Merci papydall (notre génial mathématicien) !
En plus ça fait de jolies figures décoratives. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Rectangle derviche Lun 18 Fév 2013 - 22:39 | |
| - JL35 a écrit:
- C'est bien intéressant tout ça, quelques subs à garder précieusement sous le coude.
Merci papydall (notre génial mathématicien) !
En plus ça fait de jolies figures décoratives. Merci JL35. J’ai vraiment voulu être mathématicien tout court, mais je fus météorologiste ! On ne peux pas inverser le temps, hélas ! Cela ne m’empêche pas d’être amoureux des mathématiques ! Et parfois je ressors ce que j’ai pu ingurgiter comme équations, formules, théories etc. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Rectangle derviche Lun 18 Fév 2013 - 22:45 | |
| J'avais compris que tu avais été dans la météo (même si tu ne fais pas la pluie et le beau temps), mais il doit y falloir quand même avoir de bonnes notions de mathématiques. En tout cas c'est une passion tout à fait intéressante, et bien utile quelquefois, la preuve. Tiens, une petite remarque: j'écrirais plutôt theta que tetha (mais j'imagine que c'est un lapsus). PS Effectivement, tu t'es rattrapé plus loin ! | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Rectangle derviche Mar 19 Fév 2013 - 0:09 | |
| Bonsoir, Je viens de retrouver 2 codes dans mon ordi sur la rotation des rectangles. Le premier est de Sergeauze si mes souvenirs sont exacts et le second de lode. Pour le second code il faut utiliser les touches flèchées gauche et droite pour faire tourner le rectangle: - Code:
-
dim beta,gama,f,fx,fy ,R,dx,dy dim a,ax,ay,b,bx,by dim c,cx,cy,e,ex,ey dim x0,y0 ,x height 0,850 width 0,1000 R=300 x0=500 y0=500 ' Angle de depart beta=0/57.29 :gama=40/57.29 2d_circle x0,y0,r 2d_circle x0,y0,5 ' demi petit cote gama ne depass pas 90 ' gama= 0/57 for x=1 to 500 beta=beta+1/57.29 if key_down_code =27 then end
ax=x0+sin(180/57.29+beta)*r ay=y0+cos(180/57.29+beta)*r 2d_circle ax,ay,10
bx=x0+(sin(beta+gama)*r ) by=y0+(cos(beta+gama)*r) 2d_circle bx,by,10
cx=x0+sin(beta)*r cy=y0+cos(beta)*r
' 2d_circle cx,cy,10
ex= x0+sin(180/57.29+beta+gama)*r ey= y0+cos(180/57.29+beta+gama)*r 2d_circle ex,ey,10 2d_circle x0,y0,100 2d_line bx,by,ax,ay 2d_line ax,ay,ex,ey 2d_line ex,ey ,cx,cy 2d_line cx,cy,bx,by
wait 10 cls
next x
- Code:
-
dim x0,y0,xb,yb,xc,yc,xd,yd,lg,ha,a,pi label trn pi = 4 * atn(1) ' picture 1: full_space 1 x0 = 300: y0 = 220:lg = 200: ha = 50 ' 2d_target_is 1 on_key_down 0,trn xb = x0 + lg*COS(a): yb = y0 - lg*SIN(a) xd = x0 + ha*SIN(a): yd = y0 + ha*COS(a) xc = xd + lg*COS(a): yc = yd - lg*SIN(a) 2D_LINE x0,y0,xb,yb: 2d_poly_to xc,yc: 2d_poly_to xd,yd: 2d_poly_to x0,y0 print_locate 10,10:print " " print_locate 10,10:print a ' rotation de a radians autour du point x0,y0 end trn: 2d_clear if key_down_code = 37 then a=a+3.14/360 if key_down_code = 39 then a=a-3.14/360 xb = x0 + lg*COS(a): yb = y0 - lg*SIN(a) xd = x0 + ha*SIN(a): yd = y0 + ha*COS(a) : ' <== CHANGER LES + EN - ICI !!!!!! xc = xd + lg*COS(a): yc = yd - lg*SIN(a) 2D_LINE x0,y0,xb,yb: 2d_poly_to xc,yc: 2d_poly_to xd,yd: 2d_poly_to x0,y0 print_locate 10,10:print " " print_locate 10,10:print a return
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: Rectangle derviche Mar 19 Fév 2013 - 1:37 | |
| Hache après thé n’est pas thé avant hache ! Bon c’est corrigé, merci JL35. | |
| | | Invité Invité
| Sujet: Re: Rectangle derviche Mar 19 Fév 2013 - 5:33 | |
| - Citation :
- J'ai consulté avec grande attention le code du rectangle "de travers",
Il y a des fois on ferais bien de regarder avant de posté. J'ai renvoyé Froggy One sur le post qu'il avait lui-même consulté. Quel C.. je suis . La réalité vous ratrappe dès qu'on veut s'en éloigner. Triste réalité |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| | | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Rectangle derviche Mar 19 Fév 2013 - 16:43 | |
| Quel courrier ! C'est bien fait pour un ours comme moi ! Et en plus il y en a qui s'excusent ! C'est rien Cosmos !
A part ça, merci Bignogno, je progresse, je progresse.
Et aussi, dis donc JL35, tu as une version survitaminée du PANORAMIC ? le dim_local et le Init(), c'est ou de l'humour, ou une blague au vingt-cinquième degré ou un test... en tout cas moi ça me fait bien rire !!! sans rancune !!! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Rectangle derviche Mar 19 Fév 2013 - 17:54 | |
| Salut Froggy One. - Froggy One a écrit:
Et aussi, dis donc JL35, tu as une version survitaminée du PANORAMIC ? le dim_local et le Init(), c'est ou de l'humour, ou une blague au vingt-cinquième degré ou un test... en tout cas moi ça me fait bien rire !!! sans rancune !!! Je pense que tu parles de mon code et non de celui de JL35. Le DIM_LOCAL et INIT se trouve dans mon code. Ce n’est ni de l’humour ni une blagues de degré supérieur ou égal à zéro ! Le DIM_LOCAL est une déclaration de variables locales à une procédure, tandis que INIT_POLYGONE() c’est l’appel de la procédure SUB INIT_POLYGONE(). Il semble que tu disposes d’une version ancienne de PANORAMIC (qui date de l’ère ‘pré-SUB’). La version actuelle de Panoramic est la version 0.9.24i10 du 14 Février 2013 que tu peux télécharger à cette adresse : https://panoramic.1fr1.net/t2799-version-instantanee-du-14-fevrier-2013panoramic-v-0924i10Rira bien qui rira le dernier!
Dernière édition par papydall le Mar 19 Fév 2013 - 22:50, édité 1 fois | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Rectangle derviche Mar 19 Fév 2013 - 19:35 | |
| En effet, j'ai même créé un nouveau message pour signaler que je m'étais trompé de destinataire mais il ne s'affiche pas ici. Mille excuses, je vais pouvoir cesser d’essayer de traduire ce code en PANORAMIC antédiluvien... Merci Papydall!!! | |
| | | Contenu sponsorisé
| Sujet: Re: Rectangle derviche | |
| |
| | | | Rectangle derviche | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |