Foros del Web » Programación para mayores de 30 ;) » Java »

dibujar flechas

Estas en el tema de dibujar flechas en el foro de Java en Foros del Web. alguien de ustedes sabra como dibujar una flecha en un canvas, hasta el momento puedo dibujarla cuando la linea es horizontal, pero si esta linea ...
  #1 (permalink)  
Antiguo 08/07/2005, 09:20
 
Fecha de Ingreso: agosto-2003
Ubicación: Acapulco
Mensajes: 34
Antigüedad: 21 años, 3 meses
Puntos: 0
dibujar flechas

alguien de ustedes sabra como dibujar una flecha en un canvas, hasta el momento puedo dibujarla cuando la linea es horizontal, pero si esta linea le cambio su pendiente el triengulito del final se mantiene como si fuera la linea horizontal, es decir no gira junto con la peniente, no se si me entiendan pero las mando parte del código para que me ayuden


saludos
Jazmín

graffBuf es de tipo grafico y es publico en
la variable tipo es solo porque dibujo dos tipos de flechas punteadas o no.

public void crearFlecha(int x1, int y1, int x2, int y2, int tipo){
//vectores para dibujar el triangulo de la flecha
int puntosX[] = {x2, x2-7, x2-7,x2};
int puntosY[] = {y2, y2-7,y2+7,y2};
if(tipo==2) {
float dash1[] = {5.0f}; //punteado
BasicStroke dashed = new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, dash1, 0.0f);
grafBuff.setStroke(dashed);
}
else{
if (tipo == 1)
grafBuff.setStroke(new BasicStroke(2.0f)); //ancho
}
grafBuff.setColor(Color.black);
grafBuff.drawLine(x1,y1,x2,y2);
GeneralPath filledPolygon = new GeneralPath(GeneralPath.WIND_EVEN_ODD,puntosX.leng th);
filledPolygon.moveTo(puntosX[0],puntosY[0]);
for (int index = 1;index < puntosX.length;index++) {
filledPolygon.lineTo(puntosX[index], puntosY[index]);
}
filledPolygon.closePath();
grafBuff.fill(filledPolygon);
grafBuff.setColor(Color.gray);
grafBuff.setStroke(new BasicStroke(1.0f)); //defaulf

}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:50.