1

3D 円の扇形/部分のみを描画しようとしています- 2 つの角度 (始点、終点)、中心の座標、円の半径と幅が指定されています。私は Photoshop で何を描きましたか。 円のセクター

それを行うのを手伝ってもらえますか (単純な曲線が 1 つある 2D の例でも機能します)。それを行う方法を理解したいだけです...

ps下手な英語でごめんなさい

4

1 に答える 1

2

半径、中心 (x0/y0)、角度 (ラジアン) が与えられた場合の、円上の点の計算式

float x = radius * cos(angle) + x0;
float y = radius * sin(angle) + y0;

これを使用して、対応する三角形のストリップを作成します (例: http://en.wikipedia.org/wiki/Triangle_stripを参照):

float[] coordinates = new float[steps * 3];
float t = start_angle;
int pos = 0;
for (int i = 0; i < steps; i++) {
  float x_inner = radius_inner * cos(t) + x0;
  float y_inner = radius_inner * sin(t) + y0;

  float x_outer = radius_outer * cos(t) + x0;
  float y_outer = radius_outer * sin(t) + y0;

  coordinates[pos++] = x_inner;
  coordinates[pos++] = y_inner;
  coordinates[pos++] = 0f;

  coordinates[pos++] = x_outer;
  coordinates[pos++] = y_outer;
  coordinates[pos++] = 0f;

  t += (end_angle - start_angle) / steps;
}

// Now you need to hand over the coordinates to gl here in your preferred way,
// then call glDrawArrays(GL_TRIANGLE_STRIP, 0, steps * 2);
于 2013-11-09T19:33:50.497 に答える