ให้ฉันลองให้คุณบางสิ่งบางอย่างระหว่างคำตอบของ The Light Spark และคำตอบของ Elliot เพราะจากสิ่งที่ฉันอ่านคุณกำลังมองหาอัลกอริทึมที่จะติดตามและไม่ใช่แค่คณิตศาสตร์ที่โยนให้คุณ
คำแถลงปัญหา: เนื่องจากคุณมีสถานที่ตั้งA (50, 50)
และส่วนหัว (เนื่องจากคุณไม่ได้ระบุไว้ฉันจะยืนยันเป็นy = 2 * x + 25
) ค้นหาที่ซึ่งB (80, 90)
สัมพันธ์กับA
และส่วนหัว
สิ่งที่คุณต้องการทำนั้นค่อนข้างตรงไปตรงมา 1) ย้ายA
ที่มาของระบบของคุณ นี้เป็นเพียงหมายความว่าท้องถิ่น-to- ค่าที่จะไปเป็นค่าตำแหน่งทั่วโลกลบค่าของตำแหน่งทั่วโลกของA
กลายเป็นและจะกลายเป็นA
A
(0, 0)
B
(30, 40)
1.1) หัวเรื่องจะต้องถูกย้ายเช่นกัน นี่เป็นเรื่องง่ายมากที่จะทำเพราะการตัดแกน y ในA
เงื่อนไขเป็น 0 เสมอและความชันจะไม่เปลี่ยนดังนั้นเราจึงy = 2 * x
เป็นหัวเรื่อง
2) ตอนนี้เราจำเป็นต้องจัดตำแหน่งส่วนหัวก่อนหน้าให้กับแกน X ดังนั้นเราจะทำเช่นนี้ได้อย่างไร วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการแปลงจาก x, y พิกัดไปเป็นระบบพิกัดเชิงขั้ว ระบบพิกัดของโพลาร์นั้นเกี่ยวข้องกับR
ระยะทางไปยังที่ตั้งและphi
มุมของการหมุนจากแกน x R
ถูกกำหนดให้เป็นsqrt(x^2 + y^2)
และถูกกำหนดให้เป็นphi
atan(y / x)
ภาษาคอมพิวเตอร์ส่วนใหญ่วันนี้ไปข้างหน้าและกำหนดatan2(y, x)
ฟังก์ชั่นที่ทำสิ่งเดียวกันแน่นอนatan(y/x)
แต่ทำในลักษณะที่เอาท์พุทมีแนวโน้มที่จะจาก -180 องศาถึง 180 องศามากกว่า 0 องศาถึง 360 องศา แต่ทั้งสองทำงาน
B
จึงกลายเป็นR = sqrt(30^2 + 40^2) = sqrt(2500) = 50
และphi = atan2(40, 30) = 53.13
ในองศา
ในทำนองเดียวกันหัวเรื่องจะเปลี่ยนไป นี่เป็นคำอธิบายที่ยุ่งยากเล็กน้อย แต่เนื่องจากหัวเรื่องตามคำนิยามส่งผ่านจุดกำเนิดของเราเสมอA
เราไม่จำเป็นต้องกังวลเกี่ยวกับR
องค์ประกอบ หัวมักจะอยู่ในรูปแบบของphi = C
ที่C
เป็นค่าคงที่ ในกรณีนี้phi = atan(2 * x / x) = atan(2) = 63.435
องศา
ตอนนี้เราสามารถหมุนระบบเพื่อย้ายส่วนหัวไปยังแกน X ของA
ระบบโลคอล เหมือนตอนที่เราย้ายA
ไปที่ต้นกำเนิดของระบบสิ่งที่เราต้องทำคือลบphi
ส่วนหัวของphi
ค่าทั้งหมดในระบบ ดังนั้นphi
ของB
กลายเป็น53.13 - 63.435 = -10.305
ดีกรี
ในที่สุดเราต้องแปลงกลับจากพิกัดเชิงขั้วเป็น x, y พิกัด โดยมีสูตรการทำการเปลี่ยนแปลงที่มีและX = R * cos(phi)
Y = R * sin(phi)
สำหรับB
ดังนั้นเราจึงได้รับX = 50 * cos(-10.305) = 49.2
และY = 50 * sin(-10.305) = 8.9
ดังนั้นB
ในท้องถิ่น-to- พิกัดอยู่ใกล้กับA
(49,9)
หวังว่าจะช่วยและมีน้ำหนักเบาพอที่จะทำให้คุณทำตามคณิตศาสตร์