Equação de linha reta entre dois pontos
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
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.