7-3 三维向量运算设计一个三维向量类,实现向量加法、减法以及向量与标量的乘法和除法运算。

7-3 三维向量运算

设计一个三维向量类,实现向量加法、减法以及向量与标量的乘法和除法运算。后面添加下面代码完成:


天杀的出题人,非得放个图片在这,放个代码块会死吗?
运行的时候,要把这张图片里的内容也放进去,不然就会没有输出,显示答案错误。
运行的时候,要把这张图片里的内容也放进去,不然就会没有输出,显示答案错误。
运行的时候,要把这张图片里的内容也放进去,不然就会没有输出,显示答案错误。
重要的事情说三遍!
下面是可以直接放入测试区的代码

class Vecter3:
    def __init__(self,x = 0,y = 0,z = 0):
        self.X=x
        self.Y=y
        self.Z=z
    def add(self, n):
        r = Vecter3()
        r.X=self.X+n.X
        r.Y=self.Y+n.Y
        r.Z=self.Z+n.Z
        return r
    def __add__(self,n):
        r=Vecter3()
        r.X=self.X+n.X
        r.Y=self.Y+n.Y
        r.Z=self.Z+n.Z
        return r
    def __sub__(self,n):
        r=Vecter3()
        r.X=self.X-n.X
        r.Y=self.Y-n.Y
        r.Z=self.Z-n.Z
        return r
    def __mul__(self,n):
        r=Vecter3(0)
        r.X = self.X * n
        r.Y = self.Y * n
        r.Z = self.Z * n
        return r
    def __truediv__(self,n):
        r=Vecter3()
        r.X=self.X/n
        r.Y=self.Y/n
        r.Z=self.Z/n
        return r
    def __floordiv__(self,n):
        r=Vecter3(0,0,0)
        r.X=self.X//n
        r.Y=self.Y//n
        r.Z=self.Z//n
        return r
    def show(self):
        print((self.X,self.Y,self.Z))
def main():
    v1 = Vecter3(1,2,3)
    v2 = Vecter3(3,4,5)
    v3 = v1 + v2
    v3.show()
    v3 = v1.add(v2)
    v3.show()
    v4 = v1 - v2
    v4.show()
    v5 = v1 * 3
    v5.show()
    v6 = v2/2
    v6.show()
    v7 = v2//2
    v7.show()
main()
  • 9
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、 一个三维向量类,并定义相应的特殊方法实现两个该类对象之间的加、减运算(要求支持运算符+、-),实现该类对象与标量的乘、除运算(要求支持运算符*、/),以及向量长度的计算(要求使用属性实现)。 2、 编程实现如下功能: (1)定义一个抽象类Shape,在抽象类 Shape中定义求面积 getArea()和周长 getPerimeter()的抽象方法。 (2)分别定义继承抽象类Shape的3个子类即Triangle、Rectangle、和Circle,在这3个子类中重写 Shape中的方法getArea()和 getPerimeter( )。 (3)创建类Triangle、 Rectangle、 Circle的对象,对3个类中的方法进行调用测试。 3、使用第六章(王雷春版)介绍的知识设计一个“书籍出租管理系统”,该系统包括以下功能。 (1) 菜单项“1”:显示书籍(包括书籍名称、价格和借出状态)。 (2) 菜单项“2”:增加书籍(包括书籍名称和价格)。 (3) 菜单项“3”:借出书籍(包括借出书籍名称和借出天数)。 (4) 菜单项“4”:归还书籍(包括归还书籍名称和应付的租书费)。 (5) 菜单项“5”:统计书籍(包括借出书籍册数、未借出书籍册数和总册数)。 (6) 菜单项“-1”:退出系统。 体会利用面向对象编程的思想。 4、设计一个“超市进销存管理系统”,要求如下: (1)系统包括7种操作,分别是:1查询所有商品;2添加商品;3修改商品;4.删除商品;5卖出端口;6.汇总;-1.退出系统。 (2)选择操作序号“1”,显示所有商品 (3)选择操作序号“2”,添加新的商品(包括商品名称、数量和进货价格)。 (4)选择操作序号“3”,修改商品 (5)选择操作序号“4”,删除商品 (6)选择操作序号“5”,卖出商品(包括商品名称、数量和售出价格)。 (7)选择操作序号“6”,汇总当天卖出商品,包括每种销售商品名称、数量、进货总价、销售总价等。 (8)选择操作序号“-1”,退出系统。
设计一个三维向量类时,可以考虑以下几个方面: 1. 定义类和初始化方法:首先需要定义一个类,例如`Vector3D`,并在初始化方法`__init__`中接收三个参数`x`、`y`和`z`,分别表示向量在三个坐标轴上的分量。 2. 实现向量加法减法:可以定义两个方法`add`和`subtract`来实现向量加法减法。在这两个方法中,分别将当前向量的每个分量与另一个向量的对应分量相加或相减,并返回一个新的向量对象。 3. 实现向量标量乘法除法:可以定义两个方法`multiply`和`divide`来实现向量标量乘法除法。在这两个方法中,将当前向量的每个分量与给定的标量进行相乘或相除,并返回一个新的向量对象。 下面是一个示例代码: ```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 subtract(self, other): return Vector3D(self.x - other.x, self.y - other.y, self.z - other.z) def multiply(self, scalar): return Vector3D(self.x * scalar, self.y * scalar, self.z * scalar) def divide(self, scalar): return Vector3D(self.x / scalar, self.y / scalar, self.z / scalar) ``` 使用示例: ```python # 创建两个向量对象 v1 = Vector3D(1, 2, 3) v2 = Vector3D(4, 5, 6) # 向量加法 v3 = v1.add(v2) print(f"向量加法结果:({v3.x}, {v3.y}, {v3.z})") # 向量减法 v4 = v1.subtract(v2) print(f"向量减法结果:({v4.x}, {v4.y}, {v4.z})") # 向量标量乘法 scalar = 2 v5 = v1.multiply(scalar) print(f"向量标量乘法结果:({v5.x}, {v5.y}, {v5.z})") # 向量标量除法 v6 = v1.divide(scalar) print(f"向量标量除法结果:({v6.x}, {v6.y}, {v6.z})") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值