Olá pessoal estou com uma dificuldade em fazer a ponta da seta, pensei em fazer duas retas, porem não tive ideia de como faze-la, uma vez que a seta pode estar na horizontal, vertical ou inclinada, minha ideia é fazer uma seta igual da imagem.
O código que fiz até agora é o seguinte (ele desenha a reta mas não a ponta da seta):
public final void desenharAresta(Graphics desenho)
{
dashed = new BasicStroke(1.0f,
BasicStroke.CAP_BUTT,
BasicStroke.JOIN_MITER,
10.0f, dash1, 0.0f);
Graphics2D g2 = (Graphics2D) desenho;
BasicStroke s =(BasicStroke) g2.getStroke();
g2.setStroke(dashed);
int i,
pontoXInicial,
pontoYInicial,
pontoXFinal,
pontoYFinal;
desenho.setColor(corAresta);
//Define o ponto inicial da aresta (O centro da do verticeOrigem)
pontoXInicial = getVerticeOrigem().getX() + getVerticeOrigem().getLargura()/2;
pontoYInicial = getVerticeOrigem().getY() + getVerticeOrigem().getAltura()/2;
//Define o ponto final (sem quebra) ou segundo ponto (com quebra) da aresta...
if (getNumeroQuebras() > 0)
{
//(com quebra)
pontoXFinal = getCoordenadaQuebraX(0);
pontoYFinal = getCoordenadaQuebraY(0);
}
else
{
//(sem quebra)
pontoXFinal = getVerticeDestino().getX() + getVerticeDestino().getLargura()/2;
pontoYFinal = getVerticeDestino().getY() + getVerticeDestino().getAltura()/2;
}
desenho.drawLine(pontoXInicial, pontoYInicial, pontoXFinal, pontoYFinal);
// desenho.drawLine(pontoXFinal-60, pontoYFinal-60, pontoXFinal-30, pontoYFinal-20);
// desenho.drawLine(pontoXFinal-60, pontoYFinal+60, pontoXFinal-30, pontoYFinal-20);
//Desenha a aresta com todas as quebras existentes at� o ponto final(verticeDestino)...
for (i = 1; i <= getNumeroQuebras(); i++)
{
pontoXInicial = pontoXFinal;
pontoYInicial = pontoYFinal;
if (i == getNumeroQuebras())
{
pontoXFinal = getVerticeDestino().getX() + getVerticeDestino().getLargura()/2;
pontoYFinal = getVerticeDestino().getY() + getVerticeDestino().getAltura()/2;
}
else
{
pontoXFinal = getCoordenadaQuebraX(i);
pontoYFinal = getCoordenadaQuebraY(i);
}
desenho.drawLine(pontoXInicial, pontoYInicial, pontoXFinal, pontoYFinal);
}
g2.setStroke(s);
}
Pergunta
ANDRE BANDEIRA
Olá pessoal estou com uma dificuldade em fazer a ponta da seta, pensei em fazer duas retas, porem não tive ideia de como faze-la, uma vez que a seta pode estar na horizontal, vertical ou inclinada, minha ideia é fazer uma seta igual da imagem.
O código que fiz até agora é o seguinte (ele desenha a reta mas não a ponta da seta):
Obrigado desde já se alguém puder me ajudar.
Editado por kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.