1

我的任务是尝试创建一个绘图工具,当您在舞台上拖动鼠标时绘制虚线。我可以轻松地捕获 MouseEvent.MOUSE_MOVE 上的点并将它们存储在一个向量中,然后将这些点绘制为点:

问题是我需要在一个不断增长的点向量上计算均匀分布的点,所以我只能在每 5 个点之间画一条线(比如使用模数)。我一直在与二次和三次贝塞尔曲线方程作斗争,但仍然不能完全弄清楚如何将我的点向量转换为均匀分布的点向量而不消耗 CPU 的生命。

有人帮我吗?我看到 George Profenza 在堆栈溢出时已经接近这个了……George?

4

1 回答 1

1

嗯,我会这样尝试:检查点,计算一个和下一个之间的距离,跟踪总距离,跟踪你已经放置了多少点。然后,对于向量中的每个下一个点,查看需要在新点和最后一个点之间放置多少个均匀分布的点,并将它们绘制在贝塞尔曲线上以进行幻想,但直线应该已经很好了。

示例:矢量中的 3 个点,总距离 22。每个均匀分布点的距离:5。因此,到目前为止,屏幕上绘制的点:4。新点与最后一个点的距离为 7,总距离为 29。您现在需要 5 个点( Math.floor(29/5)=5),你有 4 个,所以你需要画 1。休息距离 = 22 - 4*5 = 2。那么做的距离 = 5-2 = 3。和 3 / 距离在新点和最后一个点之间 (9) = 0.333 -> 所以将此点放在向量中的新点和最后一个点之间的直线的 1/3 处。如 dot.x = seccondLastPoint.x + ((lastPoint.x - seccondLastPoint.x) * 0.333。

我很确定这会给你想要的结果。你认为你可以从这个描述中构建代码吗?

于 2011-10-03T19:16:40.223 回答