public class TOWER {
float x = 122.5180354f * 100;
float y = 36.9014215f * 100;
float z = 0.0f;
private final static float GL_PI = 3.1415f;
private float [] mVertex;
private float [] mVertex2;
private FloatBuffer mVertexBuffer;
private FloatBuffer mVertexBuffer2;
private float mInterval;
public TOWER(){
int num = 36;
mVertex = new float[num * 3];
mVertex2 = new float[num * 3];
mInterval = (2 * GL_PI) / num;
for (int i = 0; i < num; i++) {
mVertex[i * 3 + 0] = (float) Math.sin(mInterval * i);
mVertex[i * 3 + 1] = (float) Math.cos(mInterval * i);
mVertex[i * 3 + 2] = 0;
}
for (int i = 0; i < num; i++) {
mVertex2[i * 3 + 0] = (float) Math.sin(mInterval * i);
mVertex2[i * 3 + 1] = (float) Math.cos(mInterval * i);
mVertex2[i * 3 + 2] = 0;
}
ByteBuffer vbb5 = ByteBuffer.allocateDirect(mVertex.length * 4);
vbb5.order(ByteOrder.nativeOrder());
mVertexBuffer = vbb5.asFloatBuffer();
mVertexBuffer.put(mVertex);
mVertexBuffer.position(0);
ByteBuffer vbb6 = ByteBuffer.allocateDirect(mVertex2.length * 4);
vbb6.order(ByteOrder.nativeOrder());
mVertexBuffer2 = vbb6.asFloatBuffer();
mVertexBuffer2.put(mVertex2);
mVertexBuffer2.position(0);
}
public void draw(GL10 gl){
// 도형 그리기 상태함수 설정.
gl.glLineWidth(3);
gl.glColor4f(0f, 0f, 0f, 0f);
// 내부 작은원 그리기
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mVertexBuffer);
gl.glTranslatef(x + 0.173f, y, z);
gl.glScalef(0.07f, 0.07f, 0);
gl.glDrawArrays(GL10.GL_LINE_LOOP, 0, mVertex.length / 3);
// 외부 점선 원 그리기
gl.glTranslatef(x + 0.173f, y, z);
gl.glScalef(0.1f, 0.1f, 0);
gl.glPointSize(2.0f);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mVertexBuffer2);
gl.glDrawArrays(GL10.GL_POINTS, 0, mVertex2.length / 3);
//꼭지점 버퍼를 비활성화 시켜준다.
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
}
private void setTowerPosition(float xPosition, float yPosition, float zPosition){
this.x = xPosition;
this.y = yPosition;
this.z = zPosition;
}
}
현재 위와 같은 코드로 크기가 다른 원 두개를 그려보고 있습니다
하나의 원은 선으로 되어있고 또하나의 원은 포인트로 표시되어 있습니다.
근데 지금 무슨짓을 해도 두형 두개가 동시에 그려지지가 않습니다.
위의 코드에서 외부, 내부 원 그리기 중 둘중에 먼저 그린 원을 무조건 그리고 그다음 원은 그려지질 않습니다.
뭔가 버퍼 쪽 문제 인것 같기도 한데 정확하게 원인을 알수가 없어서 고수님들의 조언을 부탁드립니다 ㅠㅠ