タグ付けされた質問 「line-drawing」


2
インデックスバッファーとは何ですか?頂点バッファーとどのように関連していますか?
私はこのような頂点バッファーを持っています: 0.0, 0.0, 1.0, 0.0, 0.0, 0.6, 1.0, 0.6, 0.5, 1.0 次のインデックスバッファがあります。 0, 2, 2, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0, 3, 3, 1 私はgl.LINESWebGLを使用して描画したいことを知っています。これは、複数の分割された線分を意味します。 gl.drawElements(gl.LINES, 16, gl.UNSIGNED_SHORT, indexBuffer); WebGLの単一の描画呼び出しで複数の線分の描画を可能にするようです。 誰かELI5が私にできますか?インデックスバッファとは何ですか?それは頂点バッファとどのように関連していますか?プリミティブからインデックスバッファーを生成するにはどうすればよいですか?

1
ベジェ曲線と直線で構成される形状をどのように塗りつぶす必要がありますか?
私はしばらくの間グラフィックライブラリに取り組んでおり、ベジエフォントとラインベースのフォントを描画しなければならないところまで到達しました。この時点まで、私はこれで立ち往生しています: 緑の線はベジェパスで、白い部分がレンダリングされます。 ベジエに使用するコードはこちらです。ライン用はこちら。知らない人はルアです。 パスレンダリング(ライン):32-39アルゴリズムは次のとおりです。 特定の間隔で0から1まで繰り返す 次の式でxとyを計算します。 (1-index)^2*x1+2*(1-index)*index*x2+index^2*x3 この時点まで、すべてが正常に動作します。緑の線は、パスメソッドを使用して生成されます。 白い部分は完全に異なる方法でレンダリングされます: 特定のYでのベジエと線のx座標を取得し、それらをテーブルに入れます。 テーブルを繰り返し処理し、ポイントに遭遇するたびに状態の値を変更します。同じforループで、状態がオンかどうかも確認します。もしそうなら、私は画面にピクセルを描画します。 ayのx値を見つけるには、getXメソッドを使用します(ベジェでは46行目、ラインでは31行目)。 図面自体に使用するコードは次のコードです。 local xBuffer = {} local state = false for i=0,500 do for k,v in pairs(beziers) do a,b = v.getX(i) if a then xBuffer[round(a)] = 1 if b then xBuffer[round(a)] = 1 end end end for k,v in …

1
GL_LINESで入力順序を変更すると結果が異なるのはなぜですか?
コード: #include <math.h> #include <GL/glut.h> #pragma comment(lib, "opengl32") #include <gl/gl.h> #include <gl/glu.h> //Initialize OpenGL void init(void) { glClearColor(0, 0, 0, 0); glViewport(0, 0, 500, 500); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, 500, 0, 500, 1, -1); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } void drawLines(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0,1.0,1.0); glBegin(GL_LINES); glVertex3d(0.5, 0.999, 0.0f); glVertex3d(499.501, 0.999, 0.0f); glEnd(); glFlush(); …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.