我有两个点p1:(x1,y1)和p2:(x2,y2)和从p1到p2绘制的曲线(有时是圆弧,没有特定的形状)

时间:2013-08-20 04:10:18

标签: ios objective-c math geometry

我想找到p2处的切线角度。如果点y2-y1 / x2-x1p1在一条线上,我认为p2会给出斜率。 tan ((y2-y2)/(x2-x1))是否给出切线角度?如果p1p2在圆弧上,如何在p2处获得圆弧正切的角度?

有人可以帮我吗?

修改 更具体地说,我正在通过从p1到p2的路径移动船。我想根据p2处的切线角度改变船的方向,这样船的前部总是指向路径的方向。考虑http://upload.wikimedia.org/wikipedia/commons/7/7a/Graph_of_sliding_derivative_line.gif

处的维基图像

1 个答案:

答案 0 :(得分:0)

您可以通过矢量数学轻松完成。这是一个基本的想法,每次都让你的船点在曲线上的行进方向:

  1. 你必须得到船将移动的曲线方程式。
  2. 假设船在曲线上的点p1处。
  3. 确定距离d1约为曲线总长度的0.5%。
  4. 在距离d1处获得一个点pBack向后返回到曲线上的p1。
  5. 在距离d1处获得一个点pFront前进到曲线上的p1。
  6. 现在我们有一个向量v1 =(pFront.x - pBack.x,pFront.y - pBack.y)
  7. 通过在它们之间进行点积来找到v1和v2 =(1,0)之间的角度。
  8. 一旦你有角度,只需在船对象上执行旋转平移。
  9. 向量代数参考:http://www.mathsisfun.com/algebra/vectors.html