write online how app aplicacion pseudocode

pseudocode - online - Comprobando si hay 3 puntos en la misma línea.



pseudocode latex (5)

Quiero saber una parte de un código que realmente me puede decir si 3 puntos en un espacio 2D están en la misma línea o no. Un pseudocódigo también es suficiente, pero Python es mejor.


Esto es C ++, pero puedes adaptarlo a python:

bool collinear(int x1, int y1, int x2, int y2, int x3, int y3) { return (y1 - y2) * (x1 - x3) == (y1 - y3) * (x1 - x2); }

Básicamente, estamos comprobando que las pendientes entre el punto 1 y el punto 2 y el punto 1 y el punto 3 coinciden. La pendiente es el cambio en y dividido por el cambio en x, por lo que tenemos:

y1 - y2 y1 - y3 ------- = -------- x1 - x2 x1 - x3

La multiplicación cruzada da (y1 - y2) * (x1 - x3) == (y1 - y3) * (x1 - x2) ;

Tenga en cuenta que si está utilizando dobles, puede comparar con una épsilon:

bool collinear(double x1, double y1, double x2, double y2, double x3, double y3) { return fabs((y1 - y2) * (x1 - x3) - (y1 - y3) * (x1 - x2)) <= 1e-9; }


Lee this , y úsalo para encontrar la ecuación de una línea a través de los dos primeros puntos. Siga las instrucciones para encontrar m y b . Luego para su tercer punto, calcule mx + b - y . Si el resultado es cero, el tercer punto está en la misma línea que los dos primeros.


Puedes verificar si el área del triángulo ABC es 0:

[ Ax * (By - Cy) + Bx * (Cy - Ay) + Cx * (Ay - By) ] / 2

Por supuesto, en realidad no es necesario dividir por 2.


Regla 1: en cualquier espacio 2d lineal, dos puntos están siempre en la misma línea.

Toma 2 puntos y construye una ecuación que represente una línea a través de ellos. Luego verifica si el tercer punto también está en esa línea.

Buena suerte.


y - y0 = a(x-x0) (1) mientras que a = (y1 - y0)/(x1 - x0) y A(x0, y0) B(x1, y1) C(x2, y2) . Ver si C statisfies (1). Simplemente reemplaza los valores apropiados.

Details