我有三个问题:
伪代码:
onFrame = function() {
-Calculate % of the line that have been drawn
-Find Point between two Points
-Draw line until this new point
}
我的技术是直线工作但如果我想根据持续时间绘制Arc怎么办呢?
如果我想为绘图添加缓动效果怎么办?
答案 0 :(得分:1)
我没有在路径中添加细分,而是更容易创建路径
在两个段中,每帧移动最后一个段。如果你创建一个
来自您的结束与开始Point
的差异的新Points
,您
可以根据您的情况轻松计算每帧的位置
时间的持续时间。
对于弧线,每帧都更容易创建一个新弧线。该
Path.Arc(from, through, to)
格式在此处运行良好。只需旋转
关于您的中心point
的开始point
的克隆
percent_completed / 2 * numberOfDegrees
和percent_completed *
numberOfDegrees
每帧获得through
和to
值。如果
你想创建一个完整的圆圈,确保numberOfDegrees
是
略大于360.否则Arc()
可能找不到合适的
溶液
您的基于时间的百分比方法运行正常,但您需要考虑
当percent_completed
在1之前结束太远时。
如果您想进行宽松,请修改percent_completed
适当的功能。搜索'sigmoid easing'。对于
例如:
percent_completed = Math.pow(percent_completed, .5);
这可能与您想要的一样复杂。
不是每帧检查一个布尔值,而是附加一个onFrame
处理程序
在安装时,并在完成后删除处理程序。有关详细信息,请参阅this question。
如果您使用的是paperscript
表示法,则无需在构造函数中添加paper
前缀。
我不确定你为什么要在你的论文中包含jQuery函数。
答案 1 :(得分:0)
您可以使用getLocationAt
:
for(var i = 0; i < 100; i++) {
var point = path.getLocationAt(i);
newPath.add(point);
}
(这只是一个粗略的草图,解释我的想法)。
答案 2 :(得分:0)
这是一个example of a circle following an arc,我正在使用我的folio.js库的插值函数,但基础知识是。
// move path along an arc
path.position.x *= Math.cos(delta);
path.position.y *= -Math.sin(delta)*2;
查看source以查看有关其工作原理的更多详细信息