2011-07-07 75 views
1

我正在嘗試爲瑪雅人編寫一個創作工具,其中我必須滿足的標準之一是維護NURBS曲線的長度。創作工具爲用戶提供了編輯NURBS曲線的控件,但它應該始終保持曲線的長度。當我說長度時,我的意思是曲線的弧長。 NURBS曲線和弧長之間是否存在直接關係?NURBS曲線:編輯時保持長度

所以理想情況下這是我如何設想我的系統工作,如果曲線的任何CV被改變,其他CV被改變,使得曲線的弧長被保留。任何想法來實現這將是非常有益的。

另外,您如何看待maya計算arcLength?我正在使用curveInfo節點來計算曲線的弧長。它是否總結了構成曲線長度的peicewise多項式線段?

回答

2

從數學的角度來看,NURBS曲線的確切長度是一個「醜陋的怪物」。事實上,即使貝塞爾曲線的長度已經是一個怪物(一般貝塞爾曲線的長度是一個橢圓積分)。但是即使假設近似長度(這是一個簡單得多的問題)對於您來說已經足夠了,我認爲移動所有其他頂點以使得給定參數區間的長度保持不變的想法在數值上都是相當複雜的,並且可疑的(當然,解決方案並不是唯一的,那麼應該使用什麼度量來選擇其他頂點的「最佳」調整,以便解決方案變得獨一無二?)。

僅僅讓用戶移動一個頂點或更改一個單一的權重,然後顯示沿特定弧長的曲線上的點就不夠了嗎?這是明確的,易於用戶預測(對於用戶希望保持固定的其他頂點沒有「驚喜」)並且更容易實現。

0

此功能自永遠構建到Maya中。只需繪製一條曲線,然後在曲線被選中時選擇編輯曲線 - >修改曲線 - >鎖定長度