理想我想提供一系列点,并在每个点(从第二点开始)以直角绘制一条线.
每条线的方向会交替出现,所以如果我碰巧绘制了一条由6个点组成的曲线,则从第二个点开始绘制每个点的给定长度线,即曲线交替边上的5个额外线,有点像毛毛虫交替腿.
(我知道线条不会与曲线完全成直角,而是与曲线上任意两点形成的直线成直角).
And*_*eas 33
这是矢量数学的问题.您可以通过从A中减去B来计算两个点A和B之间的定向矢量.在2D中,只有在2D中,通过反转x和y分量并将一个分量置为负,可以获得与该矢量成直角的矢量.如果你否定新的x分量,你将左转,否定你将向右转.然后,您可以通过将每个分量除以矢量的长度(sqrt(x x + y y))来将定向矢量减小到单位大小(=长度1 ).最后,您可以再次按所需的长度拉伸单位矢量,并使其具有您想要的尺寸.如果将此向量添加到A或B,您将获得要绘制线条的点.
这里有一点数学帮助:

这些是表示为矢量的点A和B.

通过简单的减法计算定向矢量.

通过翻转定向矢量给出法向量,即反转分量并使一个分量为负.nl =正常,向左翻转,nr =正常,向右翻转

通过将每个分量除以矢量的长度来给出法向量的单位矢量.

计算向量的长度
如果要从B向左绘制一条线(当来自A时),则计算将线绘制为的点P.

因此,当您在点上迭代时,您希望交替一次向左绘制,一次向右绘制.
如果你的画布外面有点,那么你的长度可能太大了.当然,您可以通过计算矢量BP和边界的交点来计算P向量穿过边界的点.