[英]How abs() works for 2D vector
我無法理解 abs() 函數如何與 Turle 圖形中的 pos() 方法一起使用:
from turtle import *
while True:
forward(200)
left(170)
print(str(abs(pos()))+"\t\t"+str(pos()))
if abs(pos()) < 1:
break
abs() 函數改變向量如下:
(3.04,34.73) >> 34.862297099063255
對此有任何數學解釋嗎?
嘿,這看起來是在取向量的標量,即它與原點的距離是雙倍的。 其公式是勾股定理 (sqrt(a^2+b^2)) 希望對您有所幫助!
abs(x)
如果x
是整數,則返回x
的絕對值;如果x
實現__abs__()
方法,則返回x
的自定義值。 在您的情況下, pos()
正在返回Vec2D
類型的對象,該對象實現__abs__()
方法,如下所示:
def __abs__(self):
return (self[0]**2 + self[1]**2)**0.5
所以abs(x)
返回的值就是這個向量的長度。 在這種情況下,這也是有道理的,因為這樣你就可以得到這個向量的一維表示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.