Biarkan saya mencoba memberi Anda sesuatu di antara jawaban The Light Spark dan jawaban Elliot, karena dari apa yang saya baca, Anda benar-benar mencari algoritma untuk diikuti dan bukan hanya matematika yang dilemparkan kepada Anda.
Pernyataan Masalah: Karena Anda memiliki lokasi A (50, 50)
dan tajuk (karena Anda tidak menyediakannya, saya akan menyatakannya sebagai y = 2 * x + 25
), cari di mana B (80, 90)
relatif terhadap A
dan tajuk tersebut.
Apa yang ingin Anda lakukan sebenarnya cukup mudah. 1) Pindahkan A
ke tempat asal sistem Anda. Ini hanya berarti bahwa nilai- A
nilai lokal akan menjadi nilai posisi global dikurangi nilai posisi global A
. A
menjadi (0, 0)
dan B
menjadi (30, 40)
.
1.1) Judul juga perlu dipindahkan. Ini sebenarnya sangat mudah dilakukan, karena intersepsi y dalam A
istilah lokal selalu 0, dan kemiringannya tidak akan berubah, jadi kami memiliki y = 2 * x
judulnya.
2) Sekarang kita perlu menyelaraskan heading sebelumnya ke sumbu X. Jadi, bagaimana kita melakukan ini? Cara termudah, secara konseptual untuk melakukan ini adalah mengkonversi dari koordinat x, y ke sistem koordinat polar. Sistem koordinat kutub melibatkan R
, jarak ke lokasi, dan phi
, sudut rotasi dari sumbu x. R
didefinisikan sebagai sqrt(x^2 + y^2)
dan phi
didefinisikan sebagai atan(y / x)
. Sebagian besar bahasa komputer akhir-akhir ini maju dan mendefinisikan atan2(y, x)
fungsi yang melakukan hal yang sama persis seperti atan(y/x)
tetapi melakukannya sedemikian rupa sehingga output cenderung dari -180 derajat ke 180 derajat daripada 0 derajat ke 360 derajat, tetapi keduanya berfungsi.
B
dengan demikian menjadi R = sqrt(30^2 + 40^2) = sqrt(2500) = 50
, dan phi = atan2(40, 30) = 53.13
dalam derajat.
Demikian pula, tajuk sekarang berubah. Ini agak sulit untuk dijelaskan, tetapi karena judulnya, menurut definisi, selalu melewati asal A
kita, kita tidak perlu khawatir tentang R
komponennya. Judul selalu akan dalam bentuk di phi = C
mana C
konstan. Dalam hal ini, phi = atan(2 * x / x) = atan(2) = 63.435
derajat.
Sekarang, kita dapat memutar sistem untuk memindahkan heading ke sumbu-X dari sistem-lokal A
. Sama seperti ketika kita pindah A
ke asal sistem, yang harus kita lakukan adalah mengurangi phi
judul dari semua phi
nilai dalam sistem. Jadi phi
dari B
menjadi 53.13 - 63.435 = -10.305
derajat.
Akhirnya, kita harus mengubah kembali dari koordinat polar menjadi koordinat x, y. Formula untuk melakukan transformasi itu adalah X = R * cos(phi)
dan Y = R * sin(phi)
. Karena B
itu, kami mendapatkan X = 50 * cos(-10.305) = 49.2
dan Y = 50 * sin(-10.305) = 8.9
, jadi B
dalam A
koordinasi lokal dekat (49,9)
.
Semoga itu membantu, dan cukup ringan pada matematika untuk Anda ikuti.