通过弯曲到方向来转换线段

时间:2016-11-11 21:58:42

标签: c++ opengl math rendering

我不知道如何处理这个问题: 我需要相对于单位方向“弯曲”长度为1的段。 弯曲的强度在段的长度上为1 / y。 需要为段上的每个点定义转换,并保留长度。 以下我想到的是: enter image description here

1 个答案:

答案 0 :(得分:1)

我假设您想要弯曲线段以使其具有恒定的曲率k,即它将是半径为1 / k的圆的长度为1的弧。然后段的点(0,t)映射到点:

(1 - cos(kt))/k    ,    sin(kt)/k

对于k的小值(即曲率很小且段几乎是直的),为了防止零除事故,你用下面的公式(这是上面的k的泰勒展开)来映射它= 0):

  k t^2 / 2       ,      t - k^2 t^3 / 6

编辑:关注您的评论:

假设你的方向向量是(x,y),那么在弧的末尾(t = 1)给出切线向量的相应曲率的值由下式给出:

k = atan2(x, y)