簡體   English   中英

abs() 如何用於 2D 向量

[英]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.

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