答えて
あなたは、単に色の四角形を描画することで、これを描くことができます。四角形を描画する方法を作成し、四角形ごとに呼び出すか、すべての頂点データを保持するバッファを作成して一度呼び出します。
最初の手順では、最も簡単な方法は行列を使用することです。 angle
の矩形をheight
ととし、内側の円がradius
であるとします。今、あなたが必要とするすべてのように、単一の矩形の頂点バッファである:
{
0.0, -0.5,
0.0, 0.5,
1.0, -0.5,
1.0, 0.5
}
これは、線を描画するために完全に配置された1x1のキューブを表します。ここでは、画面の中央に線を引く線を識別する行列を使用します。そして、何が必要角度に回転させ、それは内側の円の外に、それ何が必要サイズに終わりスケールであるので、前方に移動します。
Matrix4x4 matrix = Matrix4x4.identity // Start with identity
matrix = matrix.rotate(angle, 0, 0, 1) // Rotate around Z
matrix = matrix.translate(radius, 0, 0) // Translate it forward, this is not a bug
matrix = matrix.scale(height, width, 1.0) // Scale it
これはそれをする必要があります。描画にあるパフォーマンスを追加する場合は、1回の描画呼び出しで1つのバッファを作成する必要があります。それでもまったく同じ手順を使用できますが、元の頂点データをCPU上のターゲットマトリックスで変換し、その結果を配列にパックします。
画像の下端(内側)が円形である必要があるかどうかはわかりません。これを実現する最も簡単な方法は、まずアルファマスクを描画し、それをブレンドに使用することです。これを達成するには、色を(1,1,1,1)
にクリアする必要があります。次に、カラーマスク(FALSE, FALSE, FALSE, TRUE)
と(ONE, ONE)
とをブレンドして、(0,0,0,0)
のような透明な色を使用して、アルファチャンネルにのみ円を描きます。これにより、あなたの背景は完全に白くなりますが、中央にアルファがゼロの円が表示されます。そこで、(TRUE, TRUE, TRUE, TRUE)
を使用してデフォルトのマスク設定に戻して、(DST_ALPHA, ONSE_MINUS_DST_ALPHA)
のブレンドで四角形を描画してください。これは真ん中に正しい円を表示するために四角形をうまくカットするはずです。 アルファチャンネルの代わりにステンシルバッファに描画するような、より堅牢な手順がいくつか存在します。
- 1. OpenGLの線形グラデーションテクスチャを持つ円柱を描画
- 2. OpenGL ESで線を点描する
- 3. 円線交点点
- 4. OpenGL描画円、奇妙なバグ
- 5. OpenGL-esで円を描くと正方形になります
- 6. 楕円曲線点
- 7. OpenGLで円の代わりに楕円が描かれる
- 8. JFrameへの円の描画
- 9. 体系図の描画円
- 10. Pygameの半円描画
- 11. OpenGLでのBresenhamのアルゴリズムを使った描画円
- 12. OpenGL ES - 線のみで描画する三角形?
- 13. OpenGL ES 1.0を使用したAndroid上の描画線
- 14. OpenGl ES 2D Android再描画
- 15. 円の外に線を描く
- 16. OpenGL ES 2.0、複数の頂点バッファを使用した描画
- 17. セージの楕円曲線上のデカルト点
- 18. 円の描画アルゴリズムをnピクセルの境界線
- 19. OpenGL ESでの描画の問題
- 20. AndroidのOpenGLの円(球)楕円..
- 21. OpenGL ES 2.0 GLKit線を描く
- 22. OpenGLでアンドロイドで円を描く
- 23. OpenGL ES 2.0での2D描画(iOS)
- 24. OpenGL ESの単一ピクセル描画アンドロイド
- 25. OpenGL ESのオブジェクトに円形の陰影を投影する
- 26. OpenGL ES 2.0/cocos2d 2.0で円を描く最も良い方法は?
- 27. Android:描画同心円
- 28. JPanelの描画の楕円の問題
- 29. Jqplot円グラフの描画のみの行
- 30. 画像内の楕円を伸ばして円を描く
私は、CPUによって配置されたテクスチャのないテクスチャの束として実装し、1回の描画呼び出しで起動します。各クワッドはGL_TRIANGLESを使用して4つの頂点と6つのインデックスになります。 – Columbo
@Columbo nice approach!円の形状に従って指標や頂点を計算する方法はありますか? – saiday
私はpngのクワッドを描くことはそれをしないだろうと推測しています。どのような「コントロール」がサークル上で欲しいのですか? – Andreas