0

x1,y12 つの点の間に線 (と)を描いていますが、点から離れているx2,y2座標を知る必要があります。この問題を解決する方法についてのアイデアはありますか (プログラムは目的の c で書かれています)。x3,y3gapSizex2,y2

例

4

3 に答える 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 に答える