是否有可能讓一些精靈/對象自己複製並彎曲曲線? 我做了一個形象說明我的意思:如何使幾何圖形遵循曲線?
這裏的曲線,可能是貝塞爾路徑是綠色和幾何顯示爲黑色。我想要精靈或對象(在左邊)複製自己並將其頂點與最後一個副本合併,而最後兩個頂點跟隨曲線。 如果是,該怎麼辦?有沒有關於這樣的東西的任何文檔?你做過這樣的事嗎?怎麼樣?
編輯:我不想讓精靈或對象通過路徑移動,但有一種自我複製併合並自己與它的副本。
是否有可能讓一些精靈/對象自己複製並彎曲曲線? 我做了一個形象說明我的意思:如何使幾何圖形遵循曲線?
這裏的曲線,可能是貝塞爾路徑是綠色和幾何顯示爲黑色。我想要精靈或對象(在左邊)複製自己並將其頂點與最後一個副本合併,而最後兩個頂點跟隨曲線。 如果是,該怎麼辦?有沒有關於這樣的東西的任何文檔?你做過這樣的事嗎?怎麼樣?
編輯:我不想讓精靈或對象通過路徑移動,但有一種自我複製併合並自己與它的副本。
是的,你想要做的事情可以工作,而你的繪圖展示了它的工作原理。僞代碼看起來像這樣:
curveLength = <length of entire curve>;
tileLength = <length of 1 tile>;
currentLength = 0;
while (currentLength < curveLength)
{
currentTileLength = 0;
startPt = prevPt = calculateBezierAt(0.0);
for (t = delta; (t < 1) && (currentTileLength < tileLength); t += delta) // delta is up to you. I often use 1/100th
{
nextPt = calculateBezierAt(t);
distance = distanceBetween(prevPt, nextPt);
currentTileLength += distance;
currentLength += distance;
prevPt = nextPt;
}
endPt = prevPt;
// Calculate quad here
}
要計算每個四元組,您需要在開始點和結束點生成垂線。然後,你的四方有4點。
請注意,我通過假設只有一個貝塞爾函數來簡化它。通常情況下,你將其中許多連接在一起,所以迭代它們會比上面所說的更復雜一點,但它不應該太難。
另請注意,如果您有非常狹窄的彎道或者曲線自行迴繞,您可能會看到不好的結果。不過,如果你自己生成曲線,你可能會避免這種情況。
查看SCNShape,它從Bézier曲線生成一個SceneKit幾何。
可能重複[如何使雪碧跟隨貝塞爾曲線](http://stackoverflow.com/questions/28341998/how-to-make-sprite-follow-bezier-curve) – ebby94
這是爲了使軌道/路? – Confused