x1,y1
2 つの点の間に線 (と)を描いていますが、点から離れているx2,y2
座標を知る必要があります。この問題を解決する方法についてのアイデアはありますか (プログラムは目的の c で書かれています)。x3,y3
gapSize
x2,y2
3 に答える
6
次のようにラジアンで角度を簡単に計算できます。
double rads = atan2(y2 - y1, x2 - x1);
次に、次のように座標を取得します。
double x3 = x2 + gapSize * cos(rads);
double y3 = y2 + gapSize * sin(rads);
これはあなたが意味したものですか?
于 2012-05-10T12:59:47.220 に答える
1
これを行うには多くの方法があります。(私にとって)最も簡単なのは次のとおりです。私は C の綴りさえできないので、数学の観点から書きます。
したがって、点 A = {x1,y1} および B = {x2,y2} が与えられた場合に、点 C = {x3,y3} を見つけたいと考えています。
ポイント間の距離は
d = ||B-A|| = sqrt((x2-x1)^2 + (y2-y1)^2)
直線に沿った単位ベクトルは、次の式で与えられます。
V = (B - A)/d = {(x2 - x1)/d, (y2-y1)/d}
その単位ベクトルの方向で、B から gapSize の距離にある新しい点は、
C = B + V*gapSize = {x2 + gapSize*(x2 - x1)/d, y2 + gapSize*(y2 - y1)/d}
于 2012-05-10T13:14:28.113 に答える
1
P1 と P2 の間の距離を計算します。d=sqrt( (y2-y1)^2 + (x2-x1)^2)
それでx2 = (d*x1 + gapSize*x3) / (d+gapSize)
そうx3 = (x2 * (d+gapSize) - d*x1) / gapSize
同様に、y3 = (y2 * (d+gapSize) - d*y1) / gapSize
数学でごめんなさい。私はそれをコーディングしようとしませんでしたが、それは正しいように聞こえます。これが役立つことを願っています。
于 2012-05-10T12:59:19.070 に答える