Comment faire une rotation autour d'un point ? [Divers] - Divers - Programmation
Marsh Posté le 04-05-2003 à 23:39:01
((x2*y2)² /(y1-d1(y2+y1-x1))) * |x1+x2|
rien de plus simple
Marsh Posté le 04-05-2003 à 23:45:31
simogeo a écrit : ((x2*y2)² /(y1-d1(y2+y1-x1))) * |x1+x2| |
Bah oui je sais bien c'est pas compliqué mais c loin pour moi...
Sinon il manque pas un truc la ? ou est ce que tu prends en compte X (le nombre de degres de la rotation ) ?
Marsh Posté le 04-05-2003 à 23:50:06
d1 = sqrt( (x1-x2)² + (y1-y2)²)
x2 = d1 * cos(X) + x1
y2 = d1 * sin(X) + y1
Remarque:
Si le repère était centré en 0, d1 = sqrt(x2²+y2²)
Il n'y aurais donc qu'une translation à faire ensuite, ici.
Marsh Posté le 04-05-2003 à 23:53:35
El_ShAmAn___ a écrit : d1 = sqrt( (x1-x2)² + (y1-y2)²) |
Ok merci beaucoup, c'est bien plus clair comme ca...
Marsh Posté le 26-06-2015 à 15:18:00
Pour ceux qui font du java, j'ai une méthode qui fonctionne à merveille:
("p1" étant le point donné, "center" étant le centre de la rotation et "angle" est l'angle de la rotation)
public static Point pointRotation(Point p1, Point center, double angle){
double dirP1 = Math.atan2(center.y-p1.y, center.x-p1.x);
double dirP2 = dirP1 + angle;
double dist = p1.distance(center);
return new Point((int)(center.x + dist*Math.cos(dirP2)), (int)(center.y + dist*Math.sin(dirP2)));
}
Marsh Posté le 26-06-2015 à 20:30:24
C'est vrai que les intervenants attendaient ta réponse...
Marsh Posté le 04-05-2003 à 23:33:26
Question qui va en faire rire plus d'un mais bon j'ai jamais ete tres bon en maths, et j'ai oublié ce truc la, donc voilà mon problème...
Soit un point x1,y1 (le centre)
Soit un point x2,y2 (le point en rotation autour de l'autre)
Soit d1 la distance entre le centre et le point en rotation
Quelle formule je dois appliquer pour faire executer une rotation de X degres à mon point x2,y2 ???