我在python中爲矢量和矢量添加了一個類;然而,它似乎並沒有產生我期望的結果。矢量添加不能正常工作
向量的方向爲pi(弧度)或180(度),幅值爲1加上方向爲pi * 2(弧度)或0/360(度)且幅度爲1的向量應該做一個向量(0,0),是否正確?但是,我從代碼中得到了奇怪的結果。
(-1.5707963267948966,1.2246467991473532e-16)
這是我的結果從I描述的上述矢量相加得到的。
這裏是我的代碼:
import math
class Vector:
def __init__(self, direction, magnitude, directionType="degrees"):
if directionType=="degrees":
direction = math.radians(direction)
self.direction = direction
self.magnitude = magnitude
def __add__(self, other):
x = (math.sin(self.direction) * self.magnitude) + (math.sin(other.direction) * other.magnitude)
y = (math.cos(self.direction) * self.magnitude) + (math.cos(other.direction) * other.magnitude)
magnitude = math.hypot(x, y)
direction = 0.5 * math.pi - math.atan2(y, x)
return (direction, magnitude)
v1 = Vector(math.pi, 1, directionType="radians")
v2 = Vector(math.pi*2, 1, directionType="radians")
print v1+v2
你有一個(大約)0的數量級。那不正是你所期望的嗎? – Batman