2010-06-14 24 views
1

Je dois peindre la ligne qui relie deux points.Equation en ligne droite entre deux points

Je le fais en Java. Je reçois deux points comme paramètres et je dois calculer si la ligne droite entre eux, est à l'intérieur de la figure noire.

J'ai développé ma propre solution en utilisant l'équation en ligne droite, mais mes résultats sont différents que d'utiliser les programmes "professionnels" (tels que GIMP ou même MS Paint).

Voici un exemple de ce que je veux:

alt text http://img411.imageshack.us/img411/788/img1q.png

Mais mon algorithme fait ceci:

alt text http://img267.imageshack.us/img267/1908/img2d.png

* Le point vert est hors de la figure et ce n'est pas possible.

Des idées? Quelqu'un sait-il quel code a été utilisé pour cela, dans les applications "professionnelles"?

Merci! Daniel.

EDIT: Images

+0

Ne voit aucune image. –

+0

Daniel. Cette question ne peut pas vraiment être répondue. Vous ne nous avez pas donné suffisamment d'informations et cette question sera probablement close. Pour arrêter cela, vous pouvez éditer votre question et nous dire quelle technologie vous utilisez (système d'exploitation et outils de développement), et nous dire * exactement * ce que vous essayez d'obtenir (par exemple, comment définissez-vous la ligne à tracer? ? comme une liste de points?) –

+0

Aussi, quel algorithme utilisez-vous? –

Répondre

3

Il semble que vous tronquiez au lieu d'arrondir au pixel le plus proche. Difficile de voir sur ces petites taches d'encre noire. Pourriez-vous poster le code?

+1

En effet. On dirait que votre algorithme s'attend à ce qu'il y ait 2 segments de ligne au lieu de 3 segments. Est-ce que votre dx/dy a raison? (Étant donné que vous arrondissez, pas tronqué). – berkus

+0

WOW! Peter tu es un génie !!! J'utilisais des entiers et c'était le problème! Merci! :RÉ – dafero

1

lignes Straignt sont dessinées en utilisant généralement l'algorithme de Bresenham. Je n'ai pas compris que le point vert était hors de la figure - il y a une coupure pour ne pas perdre de temps à dessiner en dehors de la zone visible.

+0

Peter a résolu mon doute, mais merci pour l'info quand même! – dafero