Cześć. Ostatnio natknąłem się na łatwy sposób wyliczenia koordynatów voxeli n-kąta.
void getPentagonCoords(float radius){
float theta = 180.0f / 5;
for (int i = 0; i < 5;i++){
snakeHeadXCoords[i] = (float) (Math.cos(theta * (i + 1)) * radius);
snakeHeadYCoords[i] = (float) (Math.sin(theta * (i + 1)) * radius);
}
}
Koordynaty Z w moim przypadku są stałe. Ale po narysowaniu tego pięcokąta jako polygonu dostałem bardzo dziwne rezultaty. Postanowiłem więc zbudować mój pięciokąt z 5 trójkątów ale rezultat był taki sam.
Tutaj jest kod budowy:
GL11.glBegin(GL11.GL_TRIANGLES);
GL11.glVertex3f(snakeHeadXCoords[0], snakeHeadYCoords[0], -0.5f);
GL11.glVertex3f(snakeHeadXCoords[1], snakeHeadYCoords[1], -0.5f);
GL11.glVertex3f(0, 0, -0.5f);
GL11.glVertex3f(snakeHeadXCoords[1], snakeHeadYCoords[1], -0.5f);
GL11.glVertex3f(snakeHeadXCoords[2], snakeHeadYCoords[2], -0.5f);
GL11.glVertex3f(0, 0, -0.5f);
GL11.glVertex3f(snakeHeadXCoords[2], snakeHeadYCoords[2], -0.5f);
GL11.glVertex3f(snakeHeadXCoords[3], snakeHeadYCoords[3], -0.5f);
GL11.glVertex3f(0, 0, -0.5f);
GL11.glVertex3f(snakeHeadXCoords[3], snakeHeadYCoords[3], -0.5f);
GL11.glVertex3f(snakeHeadXCoords[4], snakeHeadYCoords[4], -0.5f);
GL11.glVertex3f(0, 0, -0.5f);
GL11.glVertex3f(snakeHeadXCoords[4], snakeHeadYCoords[4], -0.5f);
GL11.glVertex3f(snakeHeadXCoords[0], snakeHeadYCoords[0], -0.5f);
GL11.glVertex3f(0, 0, -0.5f);
GL11.glEnd();
A tutaj rezultat:
http://imageshack.us/photo/my-images/832/pentagon.jpg/.
Może ktoś pomóc?