ย้ายพิกัดออกจากจุดศูนย์กลาง

สิ่งที่ฉันกำลังพยายามทำคือขยายกลุ่มจุดบนหน้าจอให้ห่างจากจุดศูนย์กลาง ฉันกำลังใช้รหัสนี้อยู่ (หมายเหตุ ฉันได้แก้ไขรหัสนี้เพื่อให้เข้าใจง่ายขึ้น):

    #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,)

รหัสนี้เกือบจะใช้งานได้ ปัญหาเดียวคือเมื่อ Zoom_level เป็น 0 จุดอยู่ในตำแหน่งที่ถูกต้อง แต่เมื่อฉันเพิ่มระดับการซูม จุดจะขยายไปในทิศทางที่ไม่ถูกต้อง แทนที่จะขยายออกไปด้านนอกจากจุดศูนย์กลาง การเดินทางในทิศทางตรงกันข้าม กำลังเดินทางไปสู่จุดศูนย์กลาง

คำแนะนำใด ๆ เกี่ยวกับวิธีแก้ไขปัญหานี้จะได้รับการชื่นชมอย่างมาก

[แก้ไข] - ฉันไม่ได้พูดสิ่งนี้ แต่แต่ละจุดจะกระจายออกไปที่จุดสุ่มรอบจุดศูนย์กลาง


person DeathorGlory9    schedule 04.06.2013    source แหล่งที่มา
comment
ทำงานบนเครื่องของฉัน ดูที่นี่ จากการทดลอง 100,000 ครั้ง จุดจะเดินทางไกลจากจุดศูนย์กลางเสมอเมื่อเพิ่มระดับการซูม   -  person Kevin    schedule 04.06.2013
comment
คุณคำนวณ dis_x และ dis_y อย่างไร   -  person Kevin    schedule 04.06.2013
comment
Magic 8 Ball: zoom level ของคุณมีเครื่องหมาย +/- ผิดเมื่อจุดเคลื่อนที่ไปในทิศทางที่ผิด   -  person chux - Reinstate Monica    schedule 05.06.2013


คำตอบ (1)


จุดศูนย์กลางมีพิกัด (c_x, c_y) จากนั้น (โดยค่าเริ่มต้น Zoom = 1)

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

ตัวอย่าง: จุดศูนย์กลาง (สีดำ) (2,2) จุด (สีน้ำเงิน) (3,3) และ (0,1) ซูม = 2: จุดใหม่ (สีแดง) (4,4) และ (-2, 0) < img src="https://i.stack.imgur.com/E2he7.png" alt="ป้อนคำอธิบายรูปภาพที่นี่">

person MBo    schedule 04.06.2013
comment
ไม่เสียใจเลย พวกเขาทั้งหมดรวมตัวกัน จากนั้นเมื่อระดับการซูมเพิ่มขึ้น พวกเขาก็จะย้ายไปที่ด้านซ้ายบนของหน้าจอ - person DeathorGlory9; 04.06.2013
comment
ผมอาจจะอธิบายไม่ชัดเจนแต่แต่ละจุดจะกระจายออกไปรอบๆจุดศูนย์กลางในตำแหน่งสุ่ม - person DeathorGlory9; 04.06.2013