Java - Dibujar un poligono regular sobre una circunferenc

 
Vista:

Dibujar un poligono regular sobre una circunferenc

Publicado por Elisa (2 intervenciones) el 19/04/2006 06:27:50
Hola!

Necesito ayuda urgentemente con un programa que no funciona bien y si alguien sabe donde esta el error o sabe otra forma de resolverlo por favor indiquelo.

Tengo que hacer un programa que dibuje los puntos de un polígono regular con n lados sobre una circunferencia y tengo que sacarle el apotema, longitud del lado,etc pero lo importante es que me grafique un pequeño ovalo o rectangulo o algo que marque los puntos que formarian el polígono. Para esto divido los 360 grados de la circunferencia entre el numero de lados lo que nos da como resultado el ángulo que debe formar el primer punto con el centro de la circunferencia y mediante trigonometria calculo las coordenadas del punto para pasarselo a la función que lo dibuja. Aquí esta el código por favor ayuda.

public void paint(Graphics g){
super.paint(g);
int i;
double x2,y2;


super.paint(g);

puntosx[0]=100+radio;
puntosy[0]=100+radio;

double angrad;

int angant, angcent;
angcent=360/lados;
angant=0;

for (i=1; i<=lados; i++){
g.drawArc(100,100,2*radio,2*radio,angant,angcent);
angrad= (Math.PI * angcent)/180;

x2=(radio+100)-(radio* Math.cos((2*angcent*Math.PI)/360));
y2=(radio+100)-(radio* Math.sin((2*angcent*Math.PI)/360));

g.fillOval(x2, y2,5,5);

angant=angant+angcent;
angcent=angcent+angcent;

if(i==1){
puntosx[1]=x2;
puntosy[1]=y2;
}
if(i>1){
puntosx[2]=x2;
puntosy[2]=y2;

final double L=Math.sqrt( (Math.pow( (puntosx[2]-puntosx[1]), 2.00)+ Math.pow((puntosy[2]-puntosy[1]), 2.00)) );
ap=(1/2)* Math.sqrt((4*Math.pow(radio,2))- Math.pow(L,2));
peri=lados * L;
area=(1/2)* peri * ap;



puntosx[1]=puntosx[2];
puntosy[1]=puntosy[2];

}//Fin del else if



}//Fin del For

}//FIN DEL METODO PAINT
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Dibujar un poligono regular sobre una circunfer

Publicado por manru (161 intervenciones) el 20/04/2006 02:22:55
Hola...

Fijate de usar la clase Polygon... a lo mejor te ayuda
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Polygon.html

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar