0

だから私は2点の間にプロットされた線を持っています。AとBとすると、Cocos2dで線の中点を非常に簡単に取得でき、この線のベクトルと垂直ベクトルも非常に簡単に計算できます。しかし、私の数学のスキルは非常に錆びており、次の方法がわかりません。

AとBの間の距離が50であるとすると、中点は25です。この線に垂直で、距離が10の点をプロットしたいと思います。

      C
     /  \
    /    \
   /      \
  /        \
 /          \
A------------B

ひどい例で申し訳ありませんが、これを行う方法がわかりません。また、ABラインは常にある角度にあり、ここのようにまっすぐになることはありません。

4

1 に答える 1

1

中点mと垂直ベクトルが与えられたv場合、正規化してからからvの方向に移動する必要があります。だからこのようなもの:vm

Vector2d nv = v / v.length(); // Assuming Vector2d is your vector class and length gives the length of v
Point2d newPoint = m + (nv * 10.0); // Assumes you can multiply a vector by a scalar

C ++で作業していない場合は、次のように手動で記述する必要があります。

Vector2d nv;
nv.x = v.x / v.length();
nv.y = v.y / v.length();
newPoint.x = m.x + nv.x * 10.0;
newPoint.y = m.y + nv.y * 10.0;
于 2012-06-18T20:58:17.367 に答える