Deixe-me tentar fornecer algo em algum lugar entre a resposta do The Light Spark e a resposta de Elliot, porque pelo que li, você está realmente procurando um algoritmo a seguir e não apenas a matemática lançada para você.
Declaração do problema: Como você possui um local A (50, 50)
e um cabeçalho (como você não forneceu um, eu o afirmo como y = 2 * x + 25
), descubra onde B (80, 90)
é relativo aA
e o cabeçalho.
O que você quer fazer é realmente bastante direto. 1) Realoque A
para a origem do seu sistema. Isso significa simplesmente que os A
valores locais para valores serão os valores da posição global menos os valores da posição global A
. A
torna (0, 0)
- B
se e torna - se(30, 40)
.
1.1) O cabeçalho também precisa ser movido. Isso é realmente muito fácil de fazer, porque a interceptação em y em A
termos locais é sempre 0 e a inclinação não muda, então temosy = 2 * x
como título.
2) Agora precisamos alinhar o cabeçalho anterior ao eixo X. Então, como fazemos isso? Conceitualmente, a maneira mais fácil de fazer isso é converter de coordenadas x, y em um sistema de coordenadas polares. O sistema de coordenadas polares envolve R
a distância de um local e phi
um ângulo de rotação do eixo x. R
é definido como sqrt(x^2 + y^2)
e phi
é definido como atan(y / x)
. Atualmente, a maioria das linguagens de computador vai em frente e define uma atan2(y, x)
função que faz exatamente a mesma coisa, atan(y/x)
mas de tal maneira que a saída tende a ser de -180 graus a 180 graus, em vez de 0 a 360 graus, mas ambas funcionam.
B
assim se torna R = sqrt(30^2 + 40^2) = sqrt(2500) = 50
, ephi = atan2(40, 30) = 53.13
em graus.
Da mesma forma, o título agora muda. Isso é um pouco complicado de explicar, mas como o título, por definição, sempre passa por nossa origem A
, não precisamos nos preocupar com o R
componente. Os títulos sempre estarão na forma de phi = C
onde C
é uma constante. Nesse caso, phi = atan(2 * x / x) = atan(2) = 63.435
graus.
Agora, podemos girar o sistema para mover o cabeçalho para o eixo X do local para o A
sistema. Assim como quando mudamos A
para a origem do sistema, tudo o que precisamos fazer é subtrair phi
o cabeçalho de todos os phi
valores no sistema. Então o phi
de B
se torna 53.13 - 63.435 = -10.305
graus.
Finalmente, temos que converter de volta as coordenadas polares em coordenadas x, y. A fórmula para fazer essa transformação é X = R * cos(phi)
e Y = R * sin(phi)
. Pois B
, portanto, temos X = 50 * cos(-10.305) = 49.2
e Y = 50 * sin(-10.305) = 8.9
, portanto, B
nas A
coordenadas locais está próximo (49,9)
.
Espero que isso ajude e seja leve o suficiente na matemática para você seguir.