我有一組點,侷限於二維座標平面,特別是第一和第四象限(正x值)。我能夠通過這些要點畫出一條線。OpenGL - 掃描表示
我還可以在3D空間中,在另一個窗口中將這些點繪製爲一條線。我將如何圍繞軸掃描它們,比如Y,以便我可以實現3D網格?我相信通常的例子是使用點在Maya中創建一條線,創建一個高腳杯等。
我似乎無法通過谷歌搜索術語「掃代表」,這是我的課本是指將這個過程稱爲發現很多。我只是在尋求一些思考過程或指導方針,呃,引導我!
我有一組點,侷限於二維座標平面,特別是第一和第四象限(正x值)。我能夠通過這些要點畫出一條線。OpenGL - 掃描表示
我還可以在3D空間中,在另一個窗口中將這些點繪製爲一條線。我將如何圍繞軸掃描它們,比如Y,以便我可以實現3D網格?我相信通常的例子是使用點在Maya中創建一條線,創建一個高腳杯等。
我似乎無法通過谷歌搜索術語「掃代表」,這是我的課本是指將這個過程稱爲發現很多。我只是在尋求一些思考過程或指導方針,呃,引導我!
有很多方法可以做到這一點,但重要的原則是圍繞某個軸旋轉原始線,然後從當前線發出頂點到下一線以生成三角形,請記住通過將最後一行加入第一行來「封閉」形狀。
就我個人而言,我會生成一個頂點緩衝區和一個索引緩衝區。我會圍繞Y軸旋轉N行,將每個旋轉的線的點存儲到頂點緩衝區中。
然後,算法會產生一個或多個線帶指數(多條線是比較容易,因爲否則你需要創建退化三角形,從一個條轉到下一個)
的下一部分因此,假設您有一個頂點緩衝區V,原始線P中的點數和線N的數量,您可以簡單地遍歷,通過發出索引I和索引I + P,P * N次來生成三角形條帶。給定頂點緩衝區和索引緩衝區,然後渲染N個三角形條。
如果你要聰明一點,你可以存儲索引緩存與一個單個條帶指數,並在每次渲染時添加P到頂點的基礎指標。請注意具有大量索引的高度鑲嵌網格。有些牌的最大頂點指數是65535,其他牌只有一個稍大。
我希望有道理!
不太清楚你想要達到的,但據我瞭解,你有一個「行」(這是一條直線曲線「線」? - 這個不太清楚) - 最後的圖像,並且希望將它們圍繞某個軸旋轉,以便創建某種類似於光盤或圓錐體等二維「網格」?
,你可以簡單地嘗試glRotatef(A,X,Y,Z)其中:
「a」 是要旋轉和 是圍繞着你旋轉向量的夾角。
因此,如果您要繪製的圖形繞Y軸的10倍,那麼它可能是這樣的:
for(int i = 0; i<10; i++)
{
float da = 2.0*3.14/10.0
plotLine(); // function for plotting the line once in 3 space
glRotatef(da, 0, 1, 0);
}
這將繪製線,旋轉通過少量的完整數字,然後劇情它會重複10次,這樣原始線條圍繞一個軸繪製10次 - 創建我認爲您試圖實現的「網格」。
您正在尋找的概念通常稱爲「掃面」或「擠壓」或「旋轉表面」(當專門圍繞軸旋轉時)。 –
可能使用http:// stackoverflow。com/questions/4117084/opengl-how-to-lathe-a-2d-shape-into-3d/4117489#4117489 –
是的,這幾乎解釋瞭如何生成點。但是,您仍然需要生成三角形或線段來將它們相互連接。 – Robinson