난 당신이 gl.glLineWidth (20)를 사용하는 경우라고 생각 :
float[] verts=MakeCircle2d(1,100,0,0)
public static float[] MakeCircle2d(float rad,int points,float x,float y)//x,y ofsets
{
float[] verts=new float[points*2+2];
boolean first=true;
float fx=0;
float fy=0;
int c=0;
for (int i = 0; i < points; i++)
{
float fi = 2*Trig.PI*i/points;
float xa = rad*Trig.sin(fi + Trig.PI)+x ;
float ya = rad*Trig.cos(fi + Trig.PI)+y ;
if(first)
{
first=false;
fx=xa;
fy=ya;
}
verts[c]=xa;
verts[c+1]=ya;
c+=2;
}
verts[c]=fx;
verts[c+1]=fy;
return verts;
}
는 빈 원을
gl.glDrawArrays(GL10.GL_LINES, 0, verts.length/2);
을 원하는 경우 GL10.GL_LINES로 그리거나 당신이 작성하려는 경우 GL10.GL_TRIANGLE_FAN로 그리는 하나
,
gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, verts.length/2);
나는 trig 함수를 반복적으로 사용하지 않고 그리는 방법을 설명해 준 방법을 좋아합니다. 비록 그가 물음표를 어떻게 계산했는지 묻고 싶습니다. –
또한 방향 (CW 또는 CCW)이 고려되도록 호 그리기에 대한 설명이 유용합니다. 예를 들면. slabode 코드를 사용하여 라운드 조인을 그릴 오프셋 다각형, 시작 및 끝 각도는 순서에 관계없이 지정할 수 있습니다. 또한 다각형 자체가 CW 또는 CCW 일 수 있으므로 권선 순서가 매우 중요합니다. 원호 각도 (끝 각도)가 시작 각도보다 큰 경우 코드는 훌륭하게 작동합니다. –
링크가 작동하지 않습니다. – Confuse