2010-06-01 5 views
1

J'ai une ligne dans le graphique normal, je veux savoir en croisant quelques points avec cette ligne, n'importe quelle formule pour elle? La ligne est de startpoint (50,50), endPoint (50,0) .... le moment donné peut-être (0,10), (2.45), etc ..ligne croisée et tableau de points?

+0

salut, j'ai édité ma question pls ..... –

Répondre

2
  1. ligne Marque équation
  2. Vérifiez si votre point satisfait à cette équation.

L'équation de la ligne passant à 2 points arbitraires (x1, y1) et (x2, y2) est la suivante:

(y1-y2)x + (x2-x1)y + (x1*y2 - x2*y1) = 0 

Dans le cas où la ligne est juste vertical et son équation est

x = 50 

Si vous souhaitez également vérifier si le point appartient au segment de ligne plutôt qu'à la ligne entière, vous pouvez vérifier que l'inégalité suivante est respectée (en plus de la condition précédente) (peut-être n'est-ce pas la solution la plus élégante/efficace):

(x-x1)*(x-x2)+(y-y1)*(y-y2) < 0 
+0

vous devriez vérifier aussi si le point tombe entre les deux points, dans l'exemple donné si 0 <= y <= 50. – Unreason

1

Eh bien, si vous connaissez les extrémités de la ligne qui vous intéresse, c'est facile. Tout point de la ligne a la formule

a * p1 + (1-a) * p2 

où p1, p2 sont les extrémités et a est un scalaire. Si a est compris entre 0 et 1, le point se situe entre les points d'extrémité.

+0

expliquerez-vous petit peu plus de pls? –

+0

Essayez de travailler avec quelques exemples simples avec un crayon et du papier millimétré, vous comprendrez. –

Questions connexes