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 |
|
|
| tracer un rectangle de travers | |
| | Auteur | Message |
---|
Invité Invité
| Sujet: tracer un rectangle de travers Lun 9 Mai 2011 - 0:05 | |
| Je m'aperçois qu'avec les années, je deviens nul en géométrie. J'essaie de trouver le moyen dans un picture de tracer un rectangle qui a une rotation. voici le dessin grossier: Il s'agit de tracer le rectangle abcd en bleu. Il y a les calcul selon le théorème de Pythagore, la trigonométrie, les triangle semblables sont bien loin. J'ai choisi selon un décalage de a, par rapport à d. Il aurait pu aussi choisir plutôt une rotation de chaque point. Le système de radian par rapport aux degrés ne m'aide pas, et moi celà fait bien 20, 30 ans que je ne fais plus ce genre d'excercice. Un début de code avec ce que j'ai pu aussi relever sur ce forum: Il y a des variables qui ne servent pas dans ce qui reste: - Code:
-
' teste d'un rectangle de travers left 0,680 ' label rect dim ea :' pour décalage x dim dy :' décalage y du point b dim marge_x, marge_y dim ax,ay , bx,cy ,pi ,ed , af ,fb dim ab , ad :' largeur et hauteur du rectangle dim l_adj :' calcul du point b et c dim h_adj :' calcul du point d, hauteur dans le picture dim ead :' angle ead
rem La conversion se fait en considérant que 180 degrés = Pi radians donc : rem 1 degré = Pi / 180 ~ 0.0174532925199433 radian print 4*atn(1) / 180 :' ex : print tan(45 * DegToRad) a=sin(n) dim DegToRad ,angle dim a1 , a2 , a3 ,a90 ,a
DegToRad = 0.0174532925199433 pi=4*atn(1)
picture 1:full_space 1:2d_target_is 1:print_target_is 1:font_size 1,10
marge_x=100 marge_y=180
ab=120 ad=180 a90= pi/2 :' 90% en radian
ea=40 :' décalage du point a par rapport au point d du rectangle abcd ' |conversion 90 en radian| ed=sqr(ad*ad - ea*ea) :' donne verticalement le point "d" du rectangle avec y=0 et x=0 print "ed=";ed 2d_line marge_x+ea , marge_y, marge_x+ea ,500 2d_line marge_x,marge_y , 500,marge_y 2d_line marge_x ,marge_y ,marge_x , 500 2d_line marge_x ,marge_y+ed , 500,marge_y+ed
2d_pen_color 255,0,0 2d_line marge_x+ea , marge_y , marge_x , marge_y+ed
ead=cos( ea/ad ) print "a90 =";a90 print "ead =";ead print "reste:";(a90 - ead) :' cela devrait être l'angle de rotation du rectangle mais non
end Je vous remercie de votre attention. RÉSOLU.. |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tracer un rectangle de travers Ven 20 Mai 2011 - 17:45 | |
| Salut cosmos, je vois que tu reparles ailleurs de ton rectangle en biais, c'est vrai que sur le coup je n'ai pas réagi ici, mais malgré que tu aies marqué résolu je te donne quand même ma solution géométrique (et trigonométrique) toute simple (en paramètres: les coordonnées x et y d'un des sommets, la longueur l et la hauteur h du rectangle, et l'angle de rotation, en degrés): - Code:
-
DIM x%, y%, x1%, y1%, x2%, y2%, x3%, y3%, l%, h%, a, pi, angle pi = 4* ATN(1)
PICTURE 1: WIDTH 1, 580: HEIGHT 1, 440 2D_TARGET_IS 1 l% = 140: h% = 110: x% = 300: y% = 200 ' pour voir, rotation du rectangle autour de son sommet en x,y FOR angle = 0 TO 360 STEP 30 a = angle * 2 * pi/360: ' angle en radians x1% = x% + l%*COS(a): y1% = y% - l%*SIN(a) x3% = x% + h%*SIN(a): y3% = y% + h%*COS(a) x2% = x3% + l%*COS(a): y2% = y3% - l%*SIN(a) 2D_LINE x%,y%,x1%,y1%: 2D_POLY_TO x2%,y2%: 2D_POLY_TO x3%,y3%: 2D_POLY_TO x%,y% NEXT angle END Cela dit, c'est vrai que l'absence de Klaus est bien inquiétante... | |
| | | Invité Invité
| Sujet: Re: tracer un rectangle de travers Ven 20 Mai 2011 - 23:00 | |
| Merci bien JL35 pour ton code. J'avais trouvé d'autre piste, mais il y avait toujours quelque chose qui n'allait pas. En réalité, c'est la période où je n'arrive pas à coder. J'ai d'autres résolutions à faire, et je n'arrive pas à rentrer dans mes codes. Il me faut encore deux mois pour être tranquille.
Merci bien à toi. |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tracer un rectangle de travers Ven 20 Mai 2011 - 23:07 | |
| Y'a pas de quoi cosmos, c'est un plaisir !
Bonne soirée à toi. | |
| | | Invité Invité
| Sujet: Re: tracer un rectangle de travers Ven 20 Mai 2011 - 23:17 | |
| Je viens de regarder ton code, et j'ai vu mon erreur, et c'est idiot. - Citation :
- x1% = x% + l%*COS(a): y1% = y% - l%*SIN(a)
je mettais : - Code:
-
x1% = x% + l%*COS(a): y1% = y% - h%*SIN(a) J'avais remarqué aussi que le point opposé, c'était a+pi ou a-pi, soit 180% Bonne soirée à toi. Maintenant j'espère me mettre en retrait. Je suis dépassé. |
| | | Contenu sponsorisé
| Sujet: Re: tracer un rectangle de travers | |
| |
| | | | tracer un rectangle de travers | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |