Page 1 sur 1
Et la trigo alors
Posté : mer. 12 mai 2010, 16:34
par =[TTK]= Freshmeat
Etant une vraie buse en trigonométrie, je sollicite votre bienveillance, votre aide et votre savoir.
Quelqu'un pourrait-il me donner les formules mathématiques et magiques permettant de créer un déclencheur dont on connait la position de deux coins opposés dans la longueur et qui doit faire 1 mètre de large ?
Note : Je n'ai rien contre les buses, j'aime bien les oiseaux : c''est l'expression qui est comme ça, je n'y peux rien.
Re: Et la trigo alors
Posté : mer. 12 mai 2010, 17:45
par =[TTK]= Memphis007
C'est pas que je veux pas t'aider, mais j'ai rien capté
Re: Et la trigo alors
Posté : ven. 14 mai 2010, 09:43
par =[TTK]= Freshmeat
C'est pas grave, je crois que j'ai trouvé un solution à mon problème.
Je vous tiendrai au courrant dans ma prochaine mission.
En plus M. Le_Culto a posté la réponse :
Avec "a" et "b" les marqueurs opposés:
Code : Tout sélectionner
// Largeur du marqueur, en mètres
_largeur = 10;
// Calcul de la longueur du marqueur (Pythagore)
_longueur = sqrt ( ((getmarkerpos "b" select 0) - (getmarkerpos "a" select 0))^2
+ ((getmarkerpos "b" select 1) - (getmarkerpos "a" select 1))^2 );
// Calcul du vecteur AB, qui fait la longueur du rectangle
_vecteur = [ (getmarkerpos "b" select 0) - (getmarkerpos "a" select 0) ];
_vecteur = _vecteur + [ (getmarkerpos "b" select 1) - (getmarkerpos "a" select 1) ];
// Calcul de l'angle du vecteur Ab
_angle1 = (_vecteur select 0) atan2 (_vecteur select 1) + 360;
_angle1 = _angle1 mod 360;
// Calcul de l'angle du vecteur AC (angle de AB + 90°)
_angle2 = _angle1 + 90;
_angle2 = _angle2 mod 360;
// Calcul des coordonnées du point C
_x = (sin _angle2) * _largeur + (getmarkerpos "a" select 0);
_y = (cos _angle2) * _largeur + (getmarkerpos "a" select 1);
// Calcul des coordonnées du centre du rectangle
_centre = [ ( _x + (getmarkerpos "b" select 0) ) /2 ];
_centre = _centre + [ ( _y + (getmarkerpos "b" select 1) ) /2 ];
// On positionne le point C
"c" setmarkerpos [_x,_y];
// On positionne le rectangle au centre
"d" setmarkerpos _centre;
// On oriente correctement le rectangle
"d" setmarkerdir _angle1;
// On donne les bonnes dimensions au rectangle
"d" setmarkersize [_largeur/2, _longueur/2];
Et le
sujet complet ici