Permítame intentar darle algo en algún punto entre la respuesta de The Light Spark y la respuesta de Elliot, porque por lo que leí, realmente está buscando un algoritmo a seguir y no solo matemáticas lanzadas a usted.
Declaración del problema: dado que tiene una ubicación A (50, 50)y un encabezado (ya que no proporcionó uno, lo afirmaré como y = 2 * x + 25), busque dónde B (80, 90)está relativo Ay el encabezado.
Lo que quieres hacer es bastante sencillo. 1) Vuelva Aa ubicar el origen de su sistema. Esto simplemente significa que los Avalores locales a serán los valores de posición global menos los valores de posición global de A. Ase vuelve (0, 0)y se Bvuelve (30, 40).
1.1) El encabezado también necesita ser movido. Esto es realmente muy fácil de hacer, porque la intersección en y en Atérminos locales siempre es 0, y la pendiente no cambiará, por lo que tenemos y = 2 * xcomo encabezado.
2) Ahora necesitamos alinear el rumbo anterior al eje X. ¿Entonces como hacemos esto? La manera más fácil, conceptualmente de hacer esto es convertir de coordenadas x, y a un sistema de coordenadas polares. El sistema de coordenadas polares implica Rla distancia a una ubicación y phiun ángulo de rotación desde el eje x. Rse define como sqrt(x^2 + y^2)y phise define como atan(y / x). En la actualidad, la mayoría de los lenguajes de computadora definen una atan2(y, x)función que hace exactamente lo mismo atan(y/x)pero de tal manera que la salida tiende a ser de -180 grados a 180 grados en lugar de 0 grados a 360 grados, pero funciona.
Basí se convierte R = sqrt(30^2 + 40^2) = sqrt(2500) = 50, y phi = atan2(40, 30) = 53.13en grados.
Del mismo modo, el título ahora cambia. Esto es un poco complicado de explicar, pero debido a que el encabezado, por definición, siempre pasa por nuestro origen A, no debemos preocuparnos por el Rcomponente. Los encabezados siempre tendrán la forma de phi = Cdónde Ces una constante. En este caso, phi = atan(2 * x / x) = atan(2) = 63.435grados.
Ahora, podemos rotar el sistema para mover el rumbo al eje X del Asistema local . Al igual que cuando nos mudamos Aal origen del sistema, todo lo que tenemos que hacer es restar phiel encabezado de todos los phivalores del sistema. Entonces el phide se Bconvierte en 53.13 - 63.435 = -10.305grados.
Finalmente, tenemos que volver a convertir las coordenadas polares en coordenadas x, y. La fórmula para hacer esa transformación son X = R * cos(phi)y Y = R * sin(phi). Por lo Btanto, obtenemos X = 50 * cos(-10.305) = 49.2y Y = 50 * sin(-10.305) = 8.9, por lo tanto, Ben las Acoordenadas locales está cerca (49,9).
Esperemos que eso ayude, y que sea lo suficientemente ligero en matemáticas para que pueda seguirlo.