Graphics 将路径拆分为100个像素线

Graphics 将路径拆分为100个像素线,graphics,computational-geometry,trigonometry,adobe-illustrator,jsfl,Graphics,Computational Geometry,Trigonometry,Adobe Illustrator,Jsfl,我在Illustrator中画了一条路径,我需要把路径分成100像素的部分。我搞不懂逻辑。一条直线由2个点x1、y1和x2、y2组成。这是一条直线。我的线条可能有角度/曲线,因此我需要做什么来计算2个像素之间的距离。以下是我的线条和部分的图示,我需要选择/提取: 从上面的形状,我需要把它分成几段线(注意这些不是直线)。 尝试引用。这是一种非常简单直观的路径规划方法。我上传了一个用LabVIEW编写的示例,但我知道还有很多其他可用的示例 Bug算法生成一条连续线;大量的数据点;但是,您可以保持其

我在Illustrator中画了一条路径,我需要把路径分成100像素的部分。我搞不懂逻辑。一条直线由2个点x1、y1和x2、y2组成。这是一条直线。我的线条可能有角度/曲线,因此我需要做什么来计算2个像素之间的距离。以下是我的线条和部分的图示,我需要选择/提取:

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

尝试引用。这是一种非常简单直观的路径规划方法。我上传了一个用LabVIEW编写的示例,但我知道还有很多其他可用的示例


Bug算法生成一条连续线;大量的数据点;但是,您可以保持其前进方向的运行平均值,并作为路径中的一个重要节点检测角度的急剧变化。这使您可以将可能数千个数据点的路径分割为几个数据点。

您的问题有两个方面:

  • 我该如何在某个时刻打破一条道路
  • 我如何找到间隔一定距离的点
  • 要回答第一个问题,定义路径的原语类型很重要。假设一系列贝塞尔立方体,您将求助于德卡斯特尔约算法:它允许您从原始控制点构造与给定贝塞尔弧的所需部分相对应的控制点。然后,将获得路径的一部分作为初始贝塞尔曲线的起始部分,然后(可能)是整个贝塞尔曲线的序列,最后是最后一个贝塞尔曲线的结束部分

    为了回答第二个问题,假设您需要一个准确的答案,您将需要对沿路径的弧长进行数值积分。请参阅此帖子:

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


    这个过程并不简单。

    我不是在寻找路径查找逻辑。我认为,由于灰色框,它给人的印象是,我正在寻找一个路径查找问题的解决方案。我画了一条曲线路径,现在我想把它分成100像素的部分,然后利用这些部分来制作动画。只是澄清一下,你当时没有处理图像,你已经有了曲线数据,即一组连续的数据点?或者这是你想在Illustrator中做的事情?是的,它不是静态光栅图像。我在Illustrator中绘制了一条路径/形状。因为它是一个向量,我假设它必须有所有的点和角度。我不知道如何读它们,然后把它们分成小块。我认为使用JSFL应该是可能的,但我不确定。好吧,好吧,算法非常简单。遍历所有点,并跟踪距离初始位置(
    lastNode
    )的距离大小。当超过100px时,在一定的公差范围内,可以丢弃中间的所有其他点。然后用当前位置覆盖
    lastNode
    ,并继续此模式,直到到达行尾。关于在Illustrator中执行此操作,我建议查看他们的插件SDK。我已经提供了一个答案,但我很想知道你为什么需要这样做。