1. 设计一个三维向量类,实现向量的加法、减法以及向量与标量的乘法和除法运算。python代码
时间: 2024-02-06 17:10:12 浏览: 102
纹理坐标-python实现pdf转换成word/txt纯文本文件
以下是一个简单的三维向量类的实现:
```python
class Vector3:
def __init__(self, x=0.0, y=0.0, z=0.0):
self.x = x
self.y = y
self.z = z
def __add__(self, other):
return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)
def __sub__(self, other):
return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
def __mul__(self, scalar):
return Vector3(self.x * scalar, self.y * scalar, self.z * scalar)
def __truediv__(self, scalar):
return Vector3(self.x / scalar, self.y / scalar, self.z / scalar)
```
这个类有一个构造函数,可以使用x、y、z三个参数来创建一个三维向量。它还定义了四个运算符重载函数。
`__add__()` 和 `__sub__()` 分别实现了向量的加法和减法。将两个向量相加或相减得到一个新的向量。
`__mul__()` 实现了向量与标量的乘法。将向量的每个分量乘以标量得到一个新的向量。
`__truediv__()` 实现了向量与标量的除法。将向量的每个分量除以标量得到一个新的向量。请注意,我们使用 `__truediv__()` 而不是 `__div__()`,因为 Python 3 中已经取消了 `__div__()` 函数。
使用示例:
```python
v1 = Vector3(1, 2, 3)
v2 = Vector3(4, 5, 6)
# 加法
v3 = v1 + v2
print(v3.x, v3.y, v3.z) # 输出 5.0 7.0 9.0
# 减法
v4 = v1 - v2
print(v4.x, v4.y, v4.z) # 输出 -3.0 -3.0 -3.0
# 乘法
v5 = v1 * 2
print(v5.x, v5.y, v5.z) # 输出 2.0 4.0 6.0
# 除法
v6 = v1 / 2
print(v6.x, v6.y, v6.z) # 输出 0.5 1.0 1.5
```
阅读全文