¿Cómo dibujar flechas con java swing?
Estoy desarrollando una herramienta grafica y necesito representar vectores. Sin embargo no encuentro forma alguna de representar la direccion de éstos, sólo rectas sin direccion. Me he estado documentando pero no encuentro como hacerlo.
Gracias de antemano!!!!
Gracias de antemano!!!!
Yo me encontré con el mismo problema, así que me hice unos 'a mano':
...
Graphics g=...;
...
public void drawArrow(int x0,int y0,int x1,int y1){
double alfa=Math.atan2(y1-y0,x1-x0);
g.drawLine(x0,y0,x1,y1);
int k=5;
int xa=(int)(x1-k*Math.cos(alfa+1));
int ya=(int)(y1-k*Math.sin(alfa+1));
// Se dibuja un extremo de la dirección de la flecha.
g.drawLine(xa,ya,x1,y1);
xa=(int)(x1-k*Math.cos(alfa-1));
ya=(int)(y1-k*Math.sin(alfa-1));
// Se dibuja el otro extremo de la dirección de la flecha.
g.drawLine(xa,ya,x1,y1);
}
Espero que te sirva.
...
Graphics g=...;
...
public void drawArrow(int x0,int y0,int x1,int y1){
double alfa=Math.atan2(y1-y0,x1-x0);
g.drawLine(x0,y0,x1,y1);
int k=5;
int xa=(int)(x1-k*Math.cos(alfa+1));
int ya=(int)(y1-k*Math.sin(alfa+1));
// Se dibuja un extremo de la dirección de la flecha.
g.drawLine(xa,ya,x1,y1);
xa=(int)(x1-k*Math.cos(alfa-1));
ya=(int)(y1-k*Math.sin(alfa-1));
// Se dibuja el otro extremo de la dirección de la flecha.
g.drawLine(xa,ya,x1,y1);
}
Espero que te sirva.
Hola, me pareció muy bueno tu método de dibujar un vector, pero cómo es tu nombre para incluirlo como autor del método en mi proyecto. Gracias.