Memindahkan koordinat dari titik pusat

Apa yang saya coba lakukan saat ini adalah memperluas sekelompok titik di layar saya menjauh dari titik pusat. Saat ini saya menggunakan kode ini (Catatan, saya telah memodifikasi kode ini agar lebih mudah dipahami):

    #d_x - the x coordinate of the dot at its default position 
    #d_y - the y coordinate of the dot at its default position 
    #dis_x - the distance along the x grid the point is away from the centre point 
    #dis_y - the distance along the y grid the point is away from the centre point
    #zoom_level - the zoom level increased or decreased depending on the mouse wheel
z_x = (d_x + (dis_x * (1 + (zoom_level * 0.01))))
    z_y = (d_y + (dis_y * (1 + (zoom_level * 0.01))))
drawText("*",z_x,z_y,)

Kode ini hampir berfungsi, satu-satunya masalah adalah ketika zoom_level adalah 0 titik-titik berada di posisi yang benar tetapi ketika saya meningkatkan level zoom, titik-titik tersebut melebar ke arah yang salah alih-alih melebar keluar dari titik pusat, perjalanannya sebaliknya, melakukan perjalanan menuju titik pusat.

Setiap saran tentang cara memperbaiki masalah ini akan sangat dihargai.

[EDIT] - Saya belum mengatakan ini tetapi setiap titik tersebar secara acak di sekitar titik pusat.


person DeathorGlory9    schedule 04.06.2013    source sumber
comment
Bekerja di mesin saya. Lihat di sini. Melakukan 100.000 percobaan, titik selalu menjauh dari titik pusat saat meningkatkan tingkat zoom.   -  person Kevin    schedule 04.06.2013
comment
Bagaimana cara menghitung dis_x dan dis_y?   -  person Kevin    schedule 04.06.2013
comment
Bola Ajaib 8: zoom level Anda memiliki tanda +/- yang salah ketika titik-titik bergerak ke arah yang salah.   -  person chux - Reinstate Monica    schedule 05.06.2013


Jawaban (1)


Misalkan titik pusat mempunyai koordinat (c_x, c_y). Kemudian (dengan Zoom default = 1)

z_x = c_x + (d_x - c_x) * Zoom
z_y = c_y + (d_y - c_y) * Zoom

Contoh : titik pusat (hitam) (2,2), titik (biru) (3,3) dan (0,1) zoom = 2 : titik baru (merah) (4,4) dan (-2, 0) < img src="https://i.stack.imgur.com/E2he7.png" alt="masukkan deskripsi gambar di sini">

person MBo    schedule 04.06.2013
comment
Tidak terlalu disayangkan, Mereka semua berkumpul dan ketika tingkat zoom meningkat, mereka bergerak ke arah kiri atas layar. - person DeathorGlory9; 04.06.2013
comment
Saya mungkin tidak menjelaskannya dengan jelas tetapi setiap titik tersebar di sekitar titik pusat pada posisi acak - person DeathorGlory9; 04.06.2013