垂直于穿过 cocos2d 的一半线的绘图点



所以我有一条线画在两点之间。假设 A 和 B,我可以很容易地在 Cocos2d 中抓取直线的中点,我也可以很容易地计算向量和垂直于这条线的向量。但是,我的数学技能非常生疏,我不知道如何执行以下操作。

假设 A 和 B 之间的距离是 50,所以中点是 25。我想绘制一个垂直于这条线的点,距离它 10

个。
      C
     /  
    /    
   /      
  /        
 /          
A------------B

很抱歉这个可怕的例子,但我不确定该怎么做。此外,AB 线总是处于某个角度,它永远不会像这里那样笔直。

给定中

m和垂直向量v,您需要对v进行归一化,然后从mv方向移动。所以像这样:

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;

最新更新