[問題] 請教如何用CsGL畫凹多邊形

看板C_Sharp (C#)作者 (Kendo)時間21年前 (2003/06/29 00:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
CsGL :C# Graphics library, 就是用C# +OpenGL http://csgl.sourceforge.net/index.html glBegin(GL_POLYGON); .. .. .. glEnd(); 上面這個方法只能畫凸多邊形,畫凹多邊形會有錯誤 而我找到一個方法,好像可以用來畫凹多邊形,以下是C++的寫法 GLUtesselator *tess tess = gluNewTess() GLdouble vertices[100][3]; gluBeginPolygon(tess); gluTessBeginContour(tess); gluTessVertex(tess,vertices[0], NULL); gluTessVertex(tess,vertices[1], NULL); .. . gluTessEndContour(tess); gluEndPolygon(tess); 但我用的是CsGL,也就是用C#寫OpenGL http://csgl.sourceforge.net/index.html 請問要怎麼寫呢? 我這樣寫卻畫不出東西,程式碼示意如下: GLUtesselator tess = new GLUtesselator(); tess = gluNewTess(); double [][] gltemp; //jagged array gltemp = new double [100][]; gltemp[對於每個i]=new double [3] {x,y,z} //x,y,z是座標 gluTessBeginPolygon(tess,new System.IntPtr(null)); gluTessBeginContour(tess); gluTessVertex(tess,gltemp[i],new System.IntPtr(null)); gluTessVertex(tess,gltemp[下個i],new System.IntPtr(null)); ... .. . gluTessEndContour(tess); gluTessEndPolygon(tess); gluTessBeginPolygon,gluTessVertex這兩個函式到底怎麼用呢? 他們的原形如下: gluTessBeginPolygon(CsGL.OpenGL.GLUtesselator tess,System.IntPtr data) gluTessVertex(CsGL.OpenGL.GLUtesselator tess,double [] location, System.IntPtr data) 試了好久都試不出來, 請高手指教 -- ※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw) ◆ From: 140.113.139.239
文章代碼(AID): #-_Rv0S_ (C_Sharp)
文章代碼(AID): #-_Rv0S_ (C_Sharp)