通过弯曲到方向来变换线段
Posted
技术标签:
【中文标题】通过弯曲到方向来变换线段【英文标题】:Transforming a segment by bending to direction 【发布时间】:2016-11-11 21:58:41 【问题描述】:我不确定如何处理这个问题: 我需要相对于单位方向“弯曲”长度为 1 的段。 弯曲的强度是段长度的 1/y。 需要为段上的每个点定义变换,并且应该保留长度。 我想到了以下几点:
【问题讨论】:
Bézier curves,也许吧?试试online。 方向向量与弯曲有何关联?那应该是弯曲段末端的切线方向吗? 没错,它的垂直分量也有限:y >= 0 【参考方案1】:我假设您想要弯曲线段,使其具有恒定的曲率 k,也就是说,它将成为半径为 1/k 的圆的长度为 1 的弧。那么segment的点(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)
【讨论】:
谢谢,试试看。这正是我的想法,但无法弄清楚细节。以上是关于通过弯曲到方向来变换线段的主要内容,如果未能解决你的问题,请参考以下文章