设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘法和除法运算。以及print()功能,向量与向量之间的乘法
时间: 2024-05-14 13:17:07 浏览: 91
好的,我可以帮你设计一个三维向量类,并实现相关的运算。以下是代码示例:
```python
class Vector3D:
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
def __add__(self, other):
return Vector3D(self.x + other.x, self.y + other.y, self.z + other.z)
def __sub__(self, other):
return Vector3D(self.x - other.x, self.y - other.y, self.z - other.z)
def __mul__(self, other):
if isinstance(other, Vector3D):
# 向量与向量之间的乘法
return Vector3D(self.y * other.z - self.z * other.y,
self.z * other.x - self.x * other.z,
self.x * other.y - self.y * other.x)
else:
# 向量与标量之间的乘法
return Vector3D(self.x * other, self.y * other, self.z * other)
def __truediv__(self, other):
if isinstance(other, (int, float)):
# 向量与标量之间的除法
return Vector3D(self.x / other, self.y / other, self.z / other)
def print(self):
print("({0}, {1}, {2})".format(self.x, self.y, self.z))
```
这个类实现了向量的加法、减法、向量与标量的乘法和除法运算,以及打印向量的功能。其中,向量与向量之间的乘法采用的是叉乘运算。你可以通过以下方式来使用这个类:
```python
v1 = Vector3D(1, 2, 3)
v2 = Vector3D(4, 5, 6)
v3 = v1 + v2
v4 = v1 - v2
v5 = v1 * v2 # 向量与向量之间的乘法
v6 = v1 * 2 # 向量与标量之间的乘法
v7 = v1 / 2 # 向量与标量之间的除法
v1.print()
v2.print()
v3.print()
v4.print()
v5.print()
v6.print()
v7.print()
```
输出结果为:
```
(1, 2, 3)
(4, 5, 6)
(5, 7, 9)
(-3, -3, -3)
(-3, 6, -3)
(2, 4, 6)
(0.5, 1.0, 1.5)
```
希望对你有所帮助!
阅读全文