package geom;
import java.awt.Polygon;
import java.awt.geom.Point2D;
public class Estrela
{
protected static final Point2D.Double[] ponto = new Point2D.Double[9];
protected static Polygon estrela = new Polygon();
protected static double x, y, e = 1.0, grau = 0.0;
protected static double meioPoligonoX = 0.0, meioPoligonoY = 0.0;
protected static void alteraEstado()
{
ponto[8] = new Point2D.Double(57.0D + x, 57.0D + y);
meioPoligonoX = ponto[8].x;
meioPoligonoY = ponto[8].y;
ponto[0] = new Point2D.Double((((0.0 + x) - ponto[8].x) * e) + ponto[8].x,
(((57.0 + y) - ponto[8].y) * e) + ponto[8].y);
ponto[1] = new Point2D.Double((((43.0 + x) - ponto[8].x) * e) + ponto[8].x,
(((43.0 + y) - ponto[8].y) * e) + ponto[8].y);
ponto[2] = new Point2D.Double((((57.0 + x) - ponto[8].x) * e) + ponto[8].x,
(((0.0 + y) - ponto[8].y) * e) + ponto[8].y);
ponto[3] = new Point2D.Double((((71.0 + x) - ponto[8].x) * e) + ponto[8].x,
(((43.0 + y) - ponto[8].y) * e) + ponto[8].y);
ponto[4] = new Point2D.Double((((114.0 + x) - ponto[8].x) * e) + ponto[8].x,
(((57.0 + y) - ponto[8].y) * e) + ponto[8].y);
ponto[5] = new Point2D.Double((((71.0 + x) - ponto[8].x) * e) + ponto[8].x,
(((71.0 + y) - ponto[8].y) * e) + ponto[8].y);
ponto[6] = new Point2D.Double((((57.0 + x) - ponto[8].x) * e) + ponto[8].x,
(((114.0 + y) - ponto[8].y) * e) + ponto[8].y);
ponto[7] = new Point2D.Double((((43.0 + x) - ponto[8].x) * e) + ponto[8].x,
(((71.0 + y) - ponto[8].y) * e) + ponto[8].y);
rotaciona();
}
protected static void rotaciona()
{
double auy, aux;
for (int i = 0; i < ponto.length - 1; i++)
{
aux = ponto[i].x - meioPoligonoX;
auy = ponto[i].y - meioPoligonoY;
aux = (aux * Math.cos(Math.toRadians(grau))) - (auy * Math.sin(Math.toRadians(grau)));
auy = (auy * Math.cos(Math.toRadians(grau))) + (aux * Math.sin(Math.toRadians(grau)));
aux += meioPoligonoX;
auy += meioPoligonoY;
ponto[i] = new Point2D.Double(aux,auy);
}
}
public static void desenhaStar()
{
int pontosX[] = new int[ponto.length - 1];
int pontosY[] = new int[ponto.length - 1];
for (int i = 0; i < ponto.length - 1; i++)
{
pontosX[i] = (int) ponto[i].x;
pontosY[i] = (int) ponto[i].y;
}
estrela = new Polygon(pontosX, pontosY, ponto.length - 1);
}
}
gostaria da visao experiente de vcs para ver o meu erro, pois estou chamando este poligono e o desenhando num painel com Graphics. mas o problema e q na hora de rotacionar, ele se comporta como se fosse 3d e rotaciona nao so de coma pra baixo como de um lado pra outro dando a impressao de uma animacao 3d.