Ir para conteúdo
Fórum Script Brasil
  • 0

AJUDA- DESENHAR SETA


ANDRE BANDEIRA

Pergunta

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. 24xooqf.jpg

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);
}

Obrigado desde já se alguém puder me ajudar.

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...