0
我有一個3D網格,我想在它的曲面上繪製3D貝塞爾曲線。最好的方法是什麼?在現有網格上繪製貝塞爾曲線
假設我有所有必要的代碼繪製網格,在其表面上選取點並根據這些點繪製貝塞爾曲線。
一個幼稚的方法是簡單地選取一些點並繪製一個通過它們的貝塞爾曲線,但它可能與網格相交(在它上面)而不是在它的表面上。有沒有簡單的解決方案?
我有一個3D網格,我想在它的曲面上繪製3D貝塞爾曲線。最好的方法是什麼?在現有網格上繪製貝塞爾曲線
假設我有所有必要的代碼繪製網格,在其表面上選取點並根據這些點繪製貝塞爾曲線。
一個幼稚的方法是簡單地選取一些點並繪製一個通過它們的貝塞爾曲線,但它可能與網格相交(在它上面)而不是在它的表面上。有沒有簡單的解決方案?
我想你想在網格三角形上放置一條曲線。在這種情況下,曲線不能平滑(導數不連續)。這是因爲網格在三角形邊緣不平滑。
如果這不是問題,那麼比簡單的解決方案可以通過選擇網格邊緣上的曲線末端控制點來爲每個所穿過的三角形分割曲線。我不知道如何做到這一點,可能是通過查找網格邊緣上的最近點來離散化輸入曲線。
貝塞爾曲線的一部分是貝塞爾曲線,所以在分割輸入曲線之後,可以使用現有的繪圖代碼。
你是什麼意思「在上面」? –
這並不容易。一種方法是計算網格的參數化(例如紋理座標),在此空間中定義貝塞爾曲線並將其提升到表面上。但是,這種方法似乎會給你帶來問題,並且對參數進行高度失真。另一種選擇是使用細分方案並將細分的點投影回網格。但是這不會產生適當的貝塞爾曲線,投影操作通常不是唯一的。 –