簡體   English   中英

Python Pygame在兩點之間找到角度

[英]Python Pygame find angle between two points

我目前正在制作一個游戲,該游戲涉及一個精靈圖像,始終要面對鼠標。 我到處都在尋找可以做到這一點的函數,但是我似乎找不到一個。 有沒有一種方法可以計算出一個點到另一個點的夾角? 例如:

angleA_X, angleA_Y = (12, 52)
angleB_X, angleB_Y = (45, 11)

deltaX = angleB_X - angleA_X
deltaY = angleB_Y - angleA_Y

tan = deltaX/deltaY

formula = math.atan(tan)

formula = formula ** 2
formula = math.sqrt(formula)

formula = math.degrees(formula)

print(formula)

這將計算角度的差異,但這不會返回右箭頭。 知道有什么問題嗎?

您正在執行一些不需要的數學運算(例如** 2sqrt ),只需要math.atan2 (這將產生弧度AB之間的角度):

math.atan2(angleA_Y - angleB_Y, angleA_X - angleB_X)

math.atan2的好處是,當deltaX == 0時也可以工作。

如果您真的需要一個角度

angle = math.atan2(ymouse-ysprite, xmouse-xsprite)

如果您寧願需要正弦和余弦

dy, dx = ymouse-ysprite, xmouse-xsprite
r = math.hypot(dx, dy)
s, c = dy/r, dx/r

PyGamepygame.math.Vector2()angle_to()

import pygame

angleA_X, angleA_Y = (12, 52)
angleB_X, angleB_Y = (45, 11)

a = pygame.math.Vector2(angleA_X, angleA_Y)
b = pygame.math.Vector2(angleB_X, angleB_Y)

zero = pygame.math.Vector2()

print( zero.angle_to(a-b) ) # 128.8298249049704

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM