将路径分成100像素线

时间:2015-11-23 14:50:01

标签: graphics computational-geometry trigonometry adobe-illustrator jsfl

我有一个在Illustrator中绘制的路径,我需要将路径分成100 px的部分。我无法弄清楚逻辑。一条线由2个点x1,y1和x2,y2组成。这是一条直线。我的线可能有角度/曲线,所以我需要做什么,找出2个像素之间的距离。这是我的线和部分的图解说明,我需要选择/提取:

enter image description here

从上面的形状,我需要把它分成几行(注意这些不是直线)。 enter image description here

1 个答案:

答案 0 :(得分:0)

您的问题有两个方面:

  1. 如何在某个时刻打破路径,
  2. 如何找到间隔一定距离的点。
  3. 要回答第一个问题,定义路径的基元类型很重要。假设有一系列Bezier立方体,您将采用de Casteljau算法:它允许您从原始控制点构造对应于给定Bezier弧的所需部分的控制点。然后,将获得路径的一部分作为初始贝塞尔曲线的起始部分,然后(可能)获得整个贝塞尔曲线的序列,最后获得最后贝塞尔曲线的结束部分。

    要回答第二个问题,假设您需要准确的答案,则需要求助于沿路径的弧长数值积分。请参阅此帖:https://math.stackexchange.com/a/1171564/65203

    对于简单的近似,您可以展平曲线(将其近似为折线)并计算累积的段长度(如果曲线渲染器允许您访问此信息,则甚至可以计算像素数。)

    这个过程并非无足轻重。