Pergunta

Eu preciso pintar a linha que vincula dois pontos.

Estou fazendo isso, em Java. Recebo dois pontos como parâmetros e tenho que calcular se a linha reta entre eles está dentro da figura preta.

Desenvolvi minha própria solução usando a equação de linha reta, mas meus resultados são diferentes de usar os programas "profissionais" (como GIMP ou mesmo MS Paint).

Aqui está um exemplo do que eu quero:

TEXTO DE ALT HTTP://img411.imageshack.us/img411/788/img1q.png

Mas meu algoritmo faz isso:

TEXTO DE ALT HTTP://IMG267.IMAGESHACK.US/IMG267/1908/IMG2D.PNG

*O ponto verde está fora da figura e isso não é possível.

Alguma ideia? Alguém sabe qual código está usando para isso, em aplicativos "profissionais"?

Obrigado! Daniel.

Editar: imagens

Foi útil?

Solução

Parece que você está truncando em vez de arredondar o pixel mais próximo. Difícil de ver nessas pequenas manchas de tinta preta. Você poderia postar o código?

Outras dicas

Programas "profissionais" provavelmente usam Algoritmo de linha de Bresenham.

As linhas da Straignt são desenhadas usando o algoritmo de Bresenham normalmente. Não entendi que Green Point está fora da figura - há recorte para não perder tempo desenhando fora da área visível.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top