Saya ingin memindahkan satu objek (titik) di jalur melingkar. Bagaimana saya harus mengubah koordinat X dan Y untuk mencapai ini?
Saya ingin memindahkan satu objek (titik) di jalur melingkar. Bagaimana saya harus mengubah koordinat X dan Y untuk mencapai ini?
Jawaban:
Anda dapat melakukannya dengan menggunakan matematika sederhana:
X := originX + cos(angle)*radius;
Y := originY + sin(angle)*radius;
(originX, originY) adalah pusat dari lingkaran Anda. radius adalah radiusnya. Itu dia.
Ini bekerja karena sinus dan cosinus secara matematis terkait dengan lingkaran unit .
Kredit gambar: LucasVB (Pekerjaan sendiri) [Domain publik], melalui Wikimedia Commons . (Diperkecil hingga 70%.)
Anda dapat menggunakan persamaan parametrik seperti yang ditandai oleh Krom. Untuk memahami mengapa kami menggunakan rumus ini, Anda harus memahami persamaannya. Persamaan ini diturunkan dari persamaan parametrik lingkaran .
Mengingat lingkaran digambar dengan pusat pada titik asal (O) seperti yang ditunjukkan pada diagram di bawah ini
Jika kita mengambil titik "p" pada keliling lingkaran, memiliki jari-jari r.
Biarkan sudut yang dibuat oleh OP (Asal ke p) menjadi θ. Biarkan jarak p dari sumbu x menjadi y Biarkan jarak p dari sumbu y menjadi x
Dengan menggunakan asumsi di atas kita mendapatkan segitiga seperti yang ditunjukkan di bawah ini:
Sekarang kita tahu bahwa cos θ = base / hypotenuse dan sin θ = tegak lurus / hypotenuse
yang memberi kita cos θ = x / r dan sin θ = y / r
:: x = r * cos θ dan y = r * sin θ
Tetapi jika lingkaran tidak pada titik asal dan lebih pada (a, b) maka kita dapat mengatakan bahwa pusat lingkaran digeser
a unit dalam sumbu x
b unit dalam sumbu y
Jadi untuk lingkaran seperti itu kita dapat mengubah persamaan parametrik sesuai dengan menambahkan pergeseran pada sumbu x dan y memberi kita persamaan berikut:
x = a + (r * cos θ)
y = b + (r * sin θ)
Di mana a & b adalah koordinat x, y dari pusat lingkaran.
Oleh karena itu kami menemukan x dan y koordinat titik pada keliling lingkaran dengan jari-jari r
Ada trik lain, di mana Anda menggunakan rumus dosa (x + a) dan cos (x + a), dan itu memungkinkan Anda menghitung dosa (a) dan cos (a) - menjadi sudut di mana Anda ingin memindahkan dari posisi Anda saat ini - hanya sekali dan lakukan penggandaan dan penambahan di setiap langkah.
sin (x + a) = sin (x) * cos (a) + cos (x) * sin (a), iirc.
Tentu saja, itu mengasumsikan kecepatan sudut konstan.
Waspadalah terhadap ketelitian aritmatika terbatas. Saya telah mengamati di masa lalu "gerakan melingkar" diimplementasikan sedemikian rupa sehingga akan menarik spiral sebagai hasil dari pembulatan yang berulang-ulang berulang kali. Mungkin perlu mengatur ulang posisi ke (x0, y0) setelah setiap revolusi.