理想情况下,我希望提供一个点序列,并在每个点处画一条直角线(从第二个点开始)。
每条线的方向都会交替变化,因此如果我绘制了由6个点组成的曲线,则每个点都将绘制相同长度的线,从第二个点开始,即沿着曲线的每个点都会有5条交替出现在曲线两侧的线,就像一只有交替腿的毛虫。
(我知道这些线不会完全垂直于曲线,而是垂直于曲线上任何两个点之间形成的直线)。
理想情况下,我希望提供一个点序列,并在每个点处画一条直角线(从第二个点开始)。
每条线的方向都会交替变化,因此如果我绘制了由6个点组成的曲线,则每个点都将绘制相同长度的线,从第二个点开始,即沿着曲线的每个点都会有5条交替出现在曲线两侧的线,就像一只有交替腿的毛虫。
(我知道这些线不会完全垂直于曲线,而是垂直于曲线上任何两个点之间形成的直线)。
这些是以向量形式表示的点A和B。
指向向量是通过简单的减法计算得出的。
法向量是通过翻转方向向量得到的,即反转分量并使一个分量为负。nl = 左侧翻转的法向量,nr = 右侧翻转的法向量
法向量的单位向量是通过将每个分量除以向量长度得到的。
计算向量的长度
如果您想从B向左绘制一条线(从A出发),则可以计算要绘制该线的点P,如下:
所以当您在遍历点时,希望每次绘制一次向左,一次向右。
如果您的点位于画布之外,则长度可能太大。您可以通过计算向量BP和边界的交点来计算向P的向量穿过边界的点。