ฉันกำลังเขียนการจำลองใน Python ซึ่งรวมถึงตัวแทนที่สามารถเดินทางในสภาพแวดล้อมได้ และมีเวกเตอร์ความเร็ว v สภาพแวดล้อมยังรวมถึงวัตถุประเภทอื่น (อาหาร) ฉันต้องการให้ตัวแทน "เห็น" เฉพาะอาหารที่อยู่ภายในระยะ r จากตัวแทน และเฉพาะเมื่อมุมระหว่างอาหารกับแกน x บวก ทีต้า อยู่ภายใน "ขอบเขตการมองเห็น" บางส่วนที่กำหนดเป็น +-อัลฟา องศาจากมุมเบตาระหว่างเวกเตอร์ความเร็วกับแกน X บวก
ในภาพประกอบที่ฉันเพิ่มเข้าไป ลูกศรสีน้ำเงินคือเวกเตอร์ความเร็ว ซึ่งสร้างมุมบีตาด้วยแกน x บวก และฉันต้องการให้ตัวแทนเห็นเฉพาะจุดสีแดง เมื่อฉันตรวจสอบว่า beta-alpha‹=theta‹=beta+alpha ฉันไม่ได้รับผลลัพธ์ที่ถูกต้องเมื่อช่วง (beta-alpha , beta+alpha) รวมถึงการเปลี่ยนจากมุมลบเป็นมุมบวกหรือจาก 2pi เป็น 0 และรอง ในทางกลับกัน
รหัส:
dx = food.x - agent.x
dy = food.y - agent.y
theta = atan2(dy,dx)
alpha = pi/6.
Vx,Vy = agent.velocity[0], agent.velocity[1]
beta = atan2(Vy,Vx)
if (beta-alpha<=theta and theta<=beta+alpha):
food.color = (255,0,0)
else:
food.color = (0,0,0)
only when the angle between the food and the positive x axis, theta
เป็นมุมไหนคะ? อาหารเป็นจุดถูก มุมระหว่างจุดกับเส้นหมายความว่าอย่างไร เส้นตรงสองเส้นใดที่ทำให้เป็นมุมทีต้า? - person gaganbm   schedule 04.05.2014