在python中使用Sin-1或逆Sin

2024-05-28 19:22:09 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码:

# point of intersection between opposite and hypotenuse

x,y  =    pygame.mouse.get_pos()


# using formula for length of line

lenline1 = (x-x)**2 + (300-y)**2
lenline2 = (x-700)**2 + (y-300)**2

opposite = math.sqrt(lenline1)

adjacent = math.sqrt(lenline2)

# Converting length of lines to angle

PQ = opposite/adjacent
k = math.sin(PQ)
j = math.asin(k)

print(j)  

我没有得到我所期望的结果,虽然在搞乱它之后,我得到了接近,但它不是很正确。有人能告诉我我做错了什么吗。我有两行: 相对和相邻 我想用罪的反义词得到这个角度。我做错什么了。我只是个初学者,所以不要提供太详细的信息。我无法想象这很难做到。

谢谢。


Tags: andof代码mathsqrtbetweenlengthpoint
3条回答

不用费心计算,它毫无意义。

j = math.asin(PQ)

但是,这只适用于直角三角形,您必须在正确的位置适当的边长。一般来说,这不起作用,您需要使用dot product method

要查找两条直线之间的角度,请使用以下关系:

cos(angle) = (l1 dot l2) / (|l1| |l2|)

也就是说

dotproduct = l1x * l2x + l1y * l2y
lenproduct = |l1| * |l2|
angle = acos(dotproduct / lenproduct)

其中l1 x,l1 y是直线l1的x,y分量。

看起来你在寻找三角形(700300),(x,300),(x,y)的角度。你让事情变得比需要的复杂多了。斜边的长度是math.hypot((700-x),(300-y)),角度是math.atan2((700-x), (300-y))

相关问题 更多 >

    热门问题