上我想繪製曲線並附加一個目的是它。是否有可能創建分數(從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,有我在貝塞爾 –