Construir reta (bresenham, dda) atravÉs de dois pontos

5 respostas
S

Estou necessitando construir um código em que necessito capturar o evento do mouse quando a pessoa clica em 2 pontos qualquer de um frame , através, desses dois pontos, é capturado as coordenadas x e y, de cada ponto ´, e pontanto , constroi-se uma reta.

URGENTE!
URGENTE!

5 Respostas

V

Segue um passo a passo:

  1. Crie uma classe filha de JPanel;
  2. Crie uma List<Point>;
  3. Capture o evento MouseClicked. Gere um novo Point para cada coordenada clicada e adicione na lista, chamando o comando repaint() após isso;

Para capturar o evento, no construtor de seu novo panel faça

addMouseListener() { new MouseAdapter() { public void mouseClicked(MouseEvent e) { //Implementação do MouseClicked } }

  1. Sobrescreva o método paintComponent do seu JPanel. Use o objeto graphics que vêm no parâmetro e o método drawLine para desenhar a reta usando os pontos guardados na lista. Você pode achar extensa documentação do Graphics tanto nesse artigo do GUJ, quanto no site da Sun.
V

Elaborei esse exemplinho.

Vá clicando no form que a partir do segundo click as linhas vão sendo desenhadas.

O código está comentado! Bom proveito!

L

siddj:
Estou necessitando construir um código em que necessito capturar o evento do mouse quando a pessoa clica em 2 pontos qualquer de um frame , através, desses dois pontos, é capturado as coordenadas x e y, de cada ponto ´, e pontanto , constroi-se uma reta.

URGENTE!
URGENTE!

Véio, que péssimo começo no GUJ hein! Aqui não é pastelaria não…esse “URGENTE! URGENTE” não comove ninguem aqui não, muito pelo contrário…

O Vini jah falou como capturar os dois pontos, porem ele usou o método drawLine, e como pela cara do seu post isso é um trabalho de “Computação Gráfica” para o curso de “Ciência da Computação”, você vai precisar usar o algoritmo de Bresenham e desenhar a reta na raça. Ele tá aqui ó: http://www.cs.helsinki.fi/group/goa/mallinnus/lines/bresenh.html

Faça bom proveito!

V

lavh:

Véio, que péssimo começo no GUJ hein! Aqui não é pastelaria não…esse “URGENTE! URGENTE” não comove ninguem aqui não, muito pelo contrário…

O Vini jah falou como capturar os dois pontos, porem ele usou o método drawLine, e como pela cara do seu post isso é um trabalho de “Computação Gráfica” para o curso de “Ciência da Computação”, você vai precisar usar o algoritmo de Bresenham e desenhar a reta na raça. Ele tá aqui ó: http://www.cs.helsinki.fi/group/goa/mallinnus/lines/bresenh.html

Faça bom proveito!

Exatamente, a primeira parte eu simplesmente postei uma resposta que dei a ele, nas mensagens pessoais, antes dele criar o tópico. Mas ele não falou que era para desenhar a linha no braço. Depois postei um exemplo que eu já tinha desenvolvido, até pq já vi muito esse tópico por aqui.

Pelo menos, assim ele já vê como capturar os cliques do mouse, já aprende o que é a classe Graphics e já dá uma olhada em como sobrescrever o paintComponent. O algoritmo de bresenham é a parte que ele tem que pensar um pouco! :slight_smile:

S

Ae, valeu demais pessoal…

Muito obrigado…

O Urgente era sim para comover!!!

Ateh mais

Criado 30 de março de 2007
Ultima resposta 31 de mar. de 2007
Respostas 5
Participantes 3