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
}