Hay dos puntos lastPoint y prePoint . Determinan una línea. Intento calcular la pendiente de esta línea usando esto:
let kbase = (lastPoint.Y - prePoint.Y) / (lastPoint.X - prePoint.X); let bbase = lastPoint.Y - kbase * lastPoint.X; //y = kx + b -> y - kx; let ybase = `${kbase} * x + ${bbase}`; Entonces, si Y son iguales, entonces kbase es cero, significa que la ecuación de línea recta es y = b .
Después de eso, trato de calcular la pendiente de la línea perpendicular a la primera línea, pero obtengo un error porque 1 / kbase donde kbase == 0 .
let kh = -1 * (1 / kbase); let bh = startPoint.Y - kh * startPoint.X; let yh = `${kh} * x + ${bh}`; ¿Cómo encontrar la pendiente de una línea perpendicular si la ecuación de la línea es y = b ?
La forma explícita de una ecuación de línea, y = mx + p no permite representar verticales, ya que la pendiente es infinita.
Para tus propósitos, puedes usar la forma implícita, ax + by + c = 0 , que no tiene este problema. A una recta ortogonal se le puede dar la ecuación bx - ay + d = 0 .
Como han dicho otros, la pendiente de una línea vertical no está definida. Así es como funciona matemáticamente, no hay problemas con su código y sus cálculos son correctos. Como te habrás dado cuenta, una recta horizontal es una función que sigue la forma y = ox+b y su pendiente es 0. La recta perpendicular de una recta horizontal da como resultado una recta vertical que no es una función. Esto significa que hay varios valores de y que corresponden a un valor de x. He aquí por qué eso es importante.
La forma general de calcular la pendiente es el cambio en y sobre el cambio en x. Debido a que una línea vertical no es una función, hay varias y para una x. Aquí hay un ejemplo. Digamos que teníamos la ecuación x=5. Aquí hay algunos puntos: (5,1), (5,2), (5,3) (5,7). Si calculaste la pendiente con los dos primeros puntos, daría como resultado (2-1)/(5-5) que es 1/0, y si calculaste la pendiente con los dos últimos puntos, daría como resultado (7-3 )/(5-5) que es 4/0. Si continuara haciendo esto, tendría un número infinito de valores indefinidos para la pendiente de una línea vertical. Tenga en cuenta que 1/0 no necesariamente es igual a 2/0 o 6/0. Incluso si intentara encontrar una línea horizontal y tomar el recíproco inverso, lo cual hizo, no podría encontrar un valor definido.
Por ejemplo, si la pendiente es el cambio en y sobre el cambio en x, entonces el recíproco inverso sería -1 * el cambio en x sobre el cambio en y. Digamos que tenemos la recta horizontal y = 0x + 5. El coeficiente de la x o pendiente es 0. Los cuatro puntos serían (5,5), (9,5), (3,5) (6,5) , y los dos cálculos de pendiente para la pendiente de la línea perpendicular serían 4/0 y 3/0, lo que lleva a la misma situación que la última vez.
Para concluir, la respuesta a su pregunta "¿Cómo encontrar la pendiente de una línea perpendicular si la ecuación de la línea es y = b?" es que no hay un valor definido para la pendiente de una línea perpendicular, y definitivamente no encontrará uno a través del código que está usando.