1
分割3D模型我有一個3D模型,代表的是這樣的:由邊緣環
class Vertex
{
double x, y, z;
}
class Edge
{
Vertex *v1, *v2; // no particular order
Face *f1, *f2; // no particular order. f2 may be null.
}
class Face
{
List<Vertex*> vertices; // clockwise order
List<Edge*> edges; // clockwise order
}
class Model
{
List<Face*> faces;
List<Vertex*> vertices;
List<Edge*> edges;
}
當然,這可以轉化成任何表示是最方便的。
我想將這個模型分成幾個不連貫的部分,沿着多個連接邊的循環,並創建新的面來蓋住兩端。實施例與一個循環:
新的面孔應在相同的位置,並從它們與其他面的連接分開相同的,但是在這個例子中我已經移動分開它們。我怎麼能這樣做?
如果頂點在其他不連接的部分之間共享,則無關緊要。
由於每條邊都恰好連接兩個面,我試着將每條邊分別分成兩份(每張面一張)。這根據需要將模型分開,但是我看不到正確添加新面部的方法。
這個問題被標記爲圖算法,因爲這個問題看起來好像與圖論有某種關係。