私はJavaでプロジェクトを進めています。私はポイント、p3
、p4
を点p1とは反対の円の外にちょうど移動しようとしています。以下は、問題を説明するイメージです、私は解決しようとしています。逆方向の移動ポイント
//given two points, calculates the angle
public static double calcAngle(Point2D.Double p1, Point2D.Double p2) {
double deltaX = p2.x - p1.x;
double deltaY = p2.y - p1.y;
return (Math.atan2(deltaY, deltaX) * 180/Math.PI);
}
//calculates a point on a circle given the angle, center of the circle and the radius
public static Point2D.Double pointOnCircle(Point2D.Double point, double radius , double angle) {
double x = Math.abs(point.x + (radius * Math.cos(angle * Math.PI/180F)));
double y = Math.abs(point.y + (radius * Math.sin(angle * Math.PI/180F)));
return new Point2D.Double(x,y);
}
どのように私は、Javaで角度がポイントp2
のそれぞれのためのシステムおよび送信先の座標を座標計算p3
、p4
のですか?
私は上記のコードをまだ試していません。より大きなプロジェクトの一部であるため、私のアプローチが正しいかどうかを知りたいと思います。前もって感謝します!
これ以上の説明がなければ、あなたは正しい方向に動いていると言いたいと思います。 – MadProgrammer
上記はうまくいきますが、角度と三角法を使うのは面倒です。代わりにベクトル演算を使用してください。 – meowgoesthedog