una teniendo solo recta que puntos punto por pendiente pasa ordinaria hallar general escribir encontrar ecuaciones ecuacion con como geometry

geometry - solo - encontrar la ecuacion de la recta teniendo dos puntos



¿Cómo puedo encontrar la ecuación de forma general de una línea a partir de dos puntos? (5)

Dada la entrada:

double x1,y1,x2,y2;

¿Cómo puedo encontrar la ecuación de forma general (doble a, b, c donde ax + by + c = 0)?

Nota: quiero poder hacer esto computacionalmente. Entonces, el equivalente para la forma pendiente-intersección sería algo como:

double dx, dy; double m, b; dx = x2 - x1; dy = y2 - y1; m = dy/dx; b = y1;

Obviamente, esto es muy simple, pero no he podido encontrar la solución para la forma de ecuación general (que es más útil porque puede hacer líneas verticales). Ya miré en mi libro de álgebra lineal y dos libros sobre geometría computacional (ambos demasiado avanzados para explicar esto).


Obtén la tangente restando los dos puntos (x2-x1, y2-y1) . Normalícelo y gírelo 90 grados para obtener el vector normal (a,b) . Tome el producto de puntos con uno de los puntos para obtener la constante, c .


Pasos de acceso directo: " Problema: (4,5) (3, -7) " Resuelva: m = -12 / 1 luego 12x-y = 48 " NOTA: m es una pendiente " COPIAR EL NUMERADOR, AFFIX "X" Fracción positiva Signo negativo en el medio. (consejo: signo similar = agregar + copiar el signo) 1. Cambie el segundo conjunto por signos opuestos, 2.ADD y1 a y2 (significa agregarlos o restarlos según el signo), 3.ADD x1 a x2 (también significa agregar o réstelas dependiendo del signo), 4. Luego Multiplica 12 y 1 a cualquiera de los problemas establecidos. Después de eso " BOOM " Tada !, tienes tu respuesta.


Si comienzas desde la ecuación y-y1 = (y2-y1)/(x2-x1) * (x-x1) (que es la ecuación de la línea definida por dos puntos), a través de alguna manipulación puedes obtener (y1-y2) * x + (x2-x1) * y + (x1-x2)*y1 + (y2-y1)*x1 = 0 , y puede reconocer que:

  • a = y1-y2 ,
  • b = x2-x1 ,
  • c = (x1-x2)*y1 + (y2-y1)*x1 .

Si empiezas a partir de la ecuación de definir línea a partir de 2 puntos

(x - x1)/(x2 - x1) = (y - y1)/(y2 - y1)

puedes terminar con la siguiente ecuación

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

entonces los coeficientes serán:

  • a = y2 - y1
  • b = - (x2 - x1) = x1 - x2
  • c = y1 * x2 - x1 * y2

Mi implementación del algoritmo en C

inline v3 LineEquationFrom2Points(v2 P1, v2 P2) { v3 Result; Result.A = P2.y - P1.y; Result.B = -(P2.x - P1.x); Result.C = P1.y * P2.x - P1.x * P2.y; return(Result); }


#include <stdio.h> main() { int a,b,c; char x,y; a=5; b=10; c=15; x=2; y=3; printf("the equation of line is %dx+%dy=%d" ,a,b,c); }