Я знаю, что здесь есть несколько вопросов о точках и вращениях, и я чувствую, что Im почти там. Мне нужно немного толкнуть.Вращение точки вокруг центральной точки
У меня есть форма с 6 точками, как этот.
Я хочу, чтобы повернуть точки P вокруг точки C
И мне нужно, чтобы сделать это вручную, поэтому я не заинтересован в использовании AffineTransform
заранее спасибо
Thread thread = new Thread() {
public void run() {
//THE RADIUS OF THE SHAPE IS 100
//GET THE POINT P
PointClass point_class = points.get(0);
//GET THE CENTER POINT C
Point center = new Point(point_class.point.x - 100, point_class.point.y);
int deg = 0;
while(deg < 360) {
//GET THE ANGLE IN RADIANS
double angle = Math.toRadians(deg);
//FIRST TRANSLATE THE DIFFERENCE
int x1 = point_class.point.x - center.x;
int y1 = point_class.point.y - center.y;
//APPLY ROTATION
x1 = (int) ((double) x1 * Math.cos(angle) - y1 * Math.sin(angle));
y1 = (int) ((double) x1 * Math.sin(angle) + y1 * Math.cos(angle));
//TRANSLATE BACK
point_class.point.x = x1 + center.x;
point_class.point.y = y1 + center.y;
//ROTATE + 1 DEEGRE NEXT TIME
deg++;
try {
//SLEEP TO SEE THE DIFFERENCE
sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
thread.start();
Что происходит с этим кодом является то, что точка P заканчивается в центре, как этот
Ваша формула выше помогла с чем-то совершенно не связанным :) – cgatian