第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求 x 軸與單位圓上的向量之間的角度

求 x 軸與單位圓上的向量之間的角度

慕容森 2024-01-15 17:12:52
[1,0]我有一個函數(shù)可以找到單位圓向量和單位圓上的向量之間的角度。import numpy as npdef angle(a):    b = [0,1]    if a[1] >= 0:        return round(np.degrees(np.arccos(np.dot(a, b)/ (np.linalg.norm(a) * np.linalg.norm(b)))), 2)    else:        return 180 + round(np.degrees(np.arccos(np.dot(a, b)/ (np.linalg.norm(a) * np.linalg.norm(b)))), 2)print(angle(np.array([1,0])))90.0print(angle(np.array([-4,2])))63.43 # This value should be 150print(angle(np.array([-1,0])))90.0 # This value should be 180print(angle(np.array([0,-1])))360.0 # This value should be 270如何確定輸入a始終是二維向量?如何更改代碼以使 x 軸下方的向量(即負 y 值)顯示正確的值?
查看完整描述

3 回答

?
慕標琳琳

TA貢獻1830條經(jīng)驗 獲得超9個贊

你的 x 向量錯了。它應該是

b = [1,0]

假設第一個坐標是 x 軸,第二個坐標是 y 軸。如果輸入正確的 b 向量,所有計算都會按預期進行。


查看完整回答
反對 回復 2024-01-15
?
森欄

TA貢獻1810條經(jīng)驗 獲得超5個贊

定義需要輸入的函數(shù)的一種方法是將兩者保留為單獨的參數(shù)(這也修復了一些錯誤并簡化了獲取角度值的邏輯):


def angle(x, y):

    

    rad = np.arctan2(y, x)

    degrees = np.int(rad*180/np.pi)

    if degrees < 0:

        degrees = 360 + degrees

    return degrees

順便說一句,atan2輸入順序y, x很容易混淆。單獨指定它們的一個優(yōu)點是可以幫助避免這種情況。如果您想將輸入保留為數(shù)組,類似這樣的內(nèi)容可以幫助您驗證長度:


def angle(a):

    

    if len(a) != 2:

        raise IndexError("vector a expected to be length 2")        

    x = a[0]

    y = a[1]

    rad = np.arctan2(y, x)

    degrees = np.int(rad*180/np.pi)

    if degrees < 0:

        degrees = 360 + degrees

    return degrees


查看完整回答
反對 回復 2024-01-15
?
偶然的你

TA貢獻1841條經(jīng)驗 獲得超3個贊

我的壞處只是注意到它實際上是 numpy 數(shù)組,在這種情況下:if isinstance(x, np.ndarray) and x.shape[0] == 2

來自評論:x.ndim == 2聽起來更好。


查看完整回答
反對 回復 2024-01-15
  • 3 回答
  • 0 關注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號