上我想绘制曲线并附加一个目的是它。是否有可能创建分数(从0.0到1.0),这使得我的对象在路径上移动?当分数为0时,对象处于开始位置,当0.5处于中途时,最后是1.0时,对象处于末尾。当然,我想要一个弯曲的路径,而不是一条直线:)是否可以在PaintCode中完成?PaintCode - 移动对象的路径
1
A
回答
0
基于这样的事实,你要沿着曲线行走使用的直线距离,事贝塞尔曲线是可怕的,你需要建立线性映射你自己。这很简单,但:
当你绘制曲线时,也建立一个查找表,例如100点(t = 0,t = 0.01,t = 0.02等)对曲线进行一次采样。在伪代码:
lut = [];
lut[0] = 0;
tlen = curve.length();
for(v=0; v<=100; v++) {
t = v/100;
clen = curve.split(0,t).length();
percent = 100*clen/tlen;
lut[percent] = t;
}
这可能会留下空白,你的LUT - 您可以修复这些作为辅助步骤或刚刚离开他们,做你的阵列上的二进制扫描,找到最近的“具有值“百分比。然后,当你需要以某个百分比值显示你的进度时,你只需要查找相应的t
值:假设你需要显示83%,你可以查找lut[83]
,并以你提供的值绘制你的对象。
2
如果您只需要作为进度条,则可能在PaintCode中。诀窍是用虚线行程非常大的差距和然后只需更改短跑。
然后,只需连接一个变量,你做。
编辑:关于在原来的职位讨论,该解决方案使用点为单位,所以它会沿着曲线平均分配,无论怎样弯曲的贝塞尔是。
相关问题
- 1. 对象沿路径移动
- 2. 移动路径上的对象(圆圈)
- 3. 动态对象的路径?
- 4. 将图形路径对象移过
- 5. 平移(路径定义)对象?
- 6. 跟踪路径上的2D对象/预先确定的移动
- 7. 将对象移动到直线路径中的目标位置
- 8. 选择正确的路径对象并将其移动
- 9. 如何使对象在弧的路径中移动?
- 10. 沿路径移动的对象与手指
- 11. 在Flash中移动路径时的对象旋转
- 12. 在HTML5画布中沿着路径旋转移动的对象
- 13. 固定滚动的对象路径
- 14. 在MatLab中沿着路径移动三维对象
- 15. 如何使tkinter对象在细胞路径中移动?
- 16. get image通过移动路径对象(Ionic + Cordova + Angular)
- 17. cocos2d以恒定速度沿着路径移动对象
- 18. 如何使对象在圆形路径中移动?
- 19. 移动对象到另一个随机路径
- 20. 在3d中沿着Bézier路径移动对象:旋转问题
- 21. 沿着预定义路径移动对象
- 22. 使用加速度计在所需路径上移动对象
- 23. Svg对象沿线路径移动并调整窗口大小
- 24. 在两个路径点之间移动对象统一2D C#
- 25. 嵌入对象的路径
- 26. html5画布 - 按路径动画对象
- 27. iOS - 沿弯曲路径拖动对象
- 28. 调整由PaintCode生成的路径的大小
- 29. 当从1.5.0迁移到1.7.3时,fabric.js路径对象被偏移
- 30. 沿路径移动形状?
不知道,如果是要问,虽然在正确的地方,但我已经试过相同,得出的结论:没有,这是不可能的内PaintCode。 – Leandros
这是一种编程语言,所以完全有可能,但你错过了重要的信息。沿着路径的速度应该是线性的,基于物理的还是“无论”?因为你这个标记与“贝塞尔”,这是一个完全非线性曲线:对象一起贝塞尔曲线的移动将这样做相当快沿直线段,减缓成正比的路径弯曲。虽然参数=距离值0 = 0%,0.5 = 50%和1 = 100%根据定义是正确的,但其他参数=距离值对贝塞尔曲线来说都不是真的,所以只给出这三个值是不够的。 –
但我不需要动画。我想使用它作为一个可见的进度条:)只是想设置值0.5,有我在贝塞尔 –