向量的加法和减法运算

using System;
using System.Collections;
using System.Collections.Generic;


/**
 * 向量的加法和减法运算
 */
public class Vector3D
{
    public float x, y, z;
    public Vector3D(float x=0f,float y =0f,float z= 0f)
    {
        this.x = x;
        this.y = y;
        this.z = z;
    }
    public Vector3D(Vector3D vec)
    {
        this.x = vec.x;
        this.y = vec.y;
        this.z = vec.z;
    }
    public Vector3D add(Vector3D vec)
    {
        Vector3D ret = new Vector3D(x, y, z);
        ret.x += vec.x;
        ret.y += vec.y;
        ret.z += vec.z;
        return ret;
    }
    public Vector3D sub(Vector3D vec)
    {
        Vector3D ret = new Vector3D(x, y, z);
        ret.x -= vec.x;
        ret.y -= vec.y;
        ret.z -= vec.z;
        return ret;
    }

    //向量规范化(单位化),让向量的长度为1
    public void normalize()
    {
        float lenth = (float)Math.Sqrt(x * x + y * y + z * z);//取模
        x /= lenth;
        y /= lenth;
        z /= lenth;
    }
    public override string ToString()
    {
        return string.Format("(" + x + "," + y + "," + z + ")");
    }

    // 操作符重载
    public static Vector3D operator + (Vector3D lv,Vector3D rv)
    {
        return lv.add(rv);
    }
    public static Vector3D operator - (Vector3D lv,Vector3D rv)
    {
        return lv.sub(rv);
    }

}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/**
 * 自己写的Vector3D与u3d的Vector3比较验证是否正确
 */
public class NewBehaviourScript : MonoBehaviour
{
    public bool isEqual(Vector3D ov,Vector3 uv)
    {
        if (ov.x == uv.x && ov.y == uv.y && ov.z == uv.z)
        {
            return true;
        }
        return false;
    }
    // Start is called before the first frame update
    void Start()
    {
        Vector3D ov1 = new Vector3D(1.1f, 1.2f, 1.3f) + new Vector3D(1, 2, 3);
        Vector3 uv1 = new Vector3(1.1f, 1.2f, 1.3f) + new Vector3(1, 2, 3);
        if (isEqual(ov1, uv1))
        {
            Debug.Log("add equal...");
        }
        Vector3D ov2 = new Vector3D(1.1f, 1.2f, 1.3f) - new Vector3D(1, 2, 3);
        Vector3 uv2 = new Vector3(1.1f, 1.2f, 1.3f) - new Vector3(1, 2, 3);
        if (isEqual(ov1, uv1))
        {
            Debug.Log("sub equal...");
        }
        ov2.normalize();
        uv2.Normalize();
        if (isEqual(ov2, uv2))
        {
            Debug.Log("nrm equal...");
        }
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

转载于:https://www.cnblogs.com/fly-book/p/10987955.html

设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘法和除法运算。 无 阅读详情

相关推荐

MATLAB基础应用精讲-【数模应用】向量的加法运算(附MATLAB、R语言、python和C++代码实现)

向量空间里有两个法定的运算,一个是数乘,一个是加法。数乘是向量空间里标量集合的元素与向量集合的元素之间的运算,其实操就是用一个λ标量去乘以向量a中的每一个分量。这个数乘的结果是另外一个向量,它与a共线(同向或反向),但模长是a模长的λ倍。加法只发生在向量集合的元素之间。加法的实操就是把对应维度的分量各自做加法,然后生成另外一个向量。如果把这两个运算捆绑到一起,就是做λ₁a₁+λ₂a₂,这个成套的运算有一个专用名称,叫“线性组合”。三角形法则:设有两个向量a和b,它们的和向量c可以通过三角形法则来求得。

qq_36130719的博客 352

java math3工具包向量计算

maven引入 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-math3</artifactId> <version>3.6.1</versi...

一世为白 7927

CSBitVectors:C#中的位向量实现

CSBitVectors 这是: 称为简洁位向量的数据结构的 C# 实现。 一个简洁的位向量是: 一个用“索引”增强的位向量,使得 与向量本身的大小相比,索引的大小“无关紧要”, 该索引用于在亚线性时间内回答以下查询: rank : 返回向量给定范围内 0 或 1 的数量 rank : BitVector -> Nat -> {0, 1} -> Nat rank vec k b = |{i | i <- [0, ..., k) vec[i] = b }| (注意,上面声称指定的范围是排他性的: i<- [0, ..., k) ,一些形式主义改为使用包含性定义范围: i <- [0, ..., k] ) 2.选择:返回第k次出现 0 或 1 的位置: select : BitVector -> Nat -> {0, 1} -> Nat select vec k b

c#中使用Math.NET进行矩阵和向量运算

Visual Studio中没有线性代数相关的运算,当我们要进行一些矩阵和向量相关运算的时候会觉得不方便。Math.Net是为.NET平台构建的开源数学工具包,功能十分强大。Math.NET包含了几个项目,其中中线性代数,概率论等部分都包含在Math.NET Numerics中,所以下面介绍一下如何使用Math.NET Numerics。 1、Math.Net Numerics的安装 在Visua...

xiansanderen的博客 6746

C#向量类定义和向量四则运算

自定义向量类定义和向量四则运算,包括点乘和叉乘。可以实现不规则图形面积计算。带测试例子,已自己测试通过

FreeSwitch采用mrcp协议对接科大讯飞asr和tts以及对话系统

FreeSwitch采用mrcp协议对接科大讯飞asr和tts对接过程

shanghaimoon的专栏 8839

C语言中向量的加法,向量的加减法运算法则

向量加法满足平行四边形法则和三角形法则。向量加法的运算律有交换律a+b=b+a;结合律(a+b)+c=a+(b+c)。向量的减法:如果a、b是互为相反的向量,a+b=0。向量的加减法向量加法的运算律交换律:a+b=b+a;结合律:(a+b)+c=a+(b+c)。减法如果a、b是互为相反的向量,那么a=-b,b=-a,a+b=0. 0的反向量为0AB-AC=CB.即“共同起点,指向被向量的减法a=(...

weixin_34236334的博客 2146

NE564锁相环FM解调电路设计:10.7MHz中频实测与3种失真优化方案

本文详细解析了NE564锁相环在10.7MHz中频FM解调电路中的设计与优化方案。通过分析锁相环技术基础、电路架构设计及典型失真问题,提供了3种有效的失真优化方法,包括限幅增强、VCO频偏补偿和环路滤波优化,显著提升解调性能。文章还涵盖了PCB布局要点和系统测试验证,为高频电子线路设计提供实用参考。

weixin_33314040的博客 350

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

7-3 三维向量运算 设计一个三维向量类,实现向量加法、减法以及向量与标量的乘法和除法运算。后面添加下面代码完成: 天杀的出题人,非得放个图片在这,放个代码块会死吗? 运行的时候,要把这张图片里的内容也放进去,不然就会没有输出,显示答案错误。 运行的时候,要把这张图片里的内容也放进去,不然就会没有输出,显示答案错误。 运行的时候,要把这张图片里的内容也放进去,不然就会没有输出,显示答案错误。 重要的事情说三遍! 下面是可以直接放入测试区的代码 class Vecter3: def __init__

green_hand11的博客 5860

Minitab正交试验设计:从入门到精通的完整指南

本文提供了一份使用Minitab进行正交试验设计的完整指南。从正交试验省时省力的原理讲起,详细介绍了在Minitab中创建正交表、填入数据、执行分析(包括解读ANOVA和P值)以及寻找最优参数组合的全流程。文章旨在帮助读者,特别是工艺优化和研发人员,快速掌握这一高效工具,从而用最少的实验次数锁定关键影响因素,提升工作效率与成果。

weixin_29201313的博客 463

FPGA以太网通信实战(一):实现MDIO接口驱动,掌控PHY芯片的钥匙

本文介绍了以太网通信技术及其核心组件。首先概述了以太网的发展历程,从标准以太网(10Mbps)到万兆以太网(10Gbps)的技术演进。重点分析了以太网接口的两大核心部件:MAC控制器负责数据链路层协议处理,PHY芯片负责物理信号转换和连接管理。文章详细解读了MDIO接口规范,包括帧格式和读写时序,并以YT8531 PHY芯片为例,介绍了其寄存器配置方法。最后设计了一个FPGA实现方案,通过MDIO接口完成PHY芯片的软复位和状态监测功能,并利用LED指示灯实时显示网络连接速率。

weixin_64402689的博客 1661

python三维向量运算_设计一个三维向量类,并实现向量的加法,减法以及向量与标量的乘法和除法运算...

class Vecter3:def_init_(self,x=0,y=0,z=0):self.X=xself.Y=yself.Z=zdef_add_(self,n):r=Vecter3()r.X=self.X+n.Xr.Y=self.Y+n.Yr.Z=self.Z+n.Zreturn rdef_sub_(self,n):r=Vecter3()r.X=self.X-n.Xr.Y=self.Y-n.Y...

weixin_39626089的博客 6512

Python爬虫实战:用Selenium+ChromeDriver批量抓取政府网站政策文件(附完整代码)

本文详细介绍了使用Python的Selenium和ChromeDriver进行政府网站政策文件批量抓取的实战技巧。从环境配置、动态页面元素定位到分页机制破解和反爬虫策略,提供了完整的解决方案和代码示例,帮助开发者高效获取结构化政策数据。

weixin_42531710的博客 265

【Python养成】:案例(设计三维向量类、实现向量的加法、减法以及向量与标量的乘法和除法运算、编写自定义类,模拟内置集、编写自定义类,模拟双端队列。)

【Python养成】:案例(设计三维向量类、实现向量的加法、减法以及向量与标量的乘法和除法运算、编写自定义类,模拟内置集、编写自定义类,模拟双端队列等等)

嵌入式up 4786

uniapp | vue2 | vue3 - 解决调用天地图功能服务时 http 网络请求报错 net::ERR ABORTED 503(Service Temporarily Unavailabl)

vue,uni-app,天地图,请求报错,503,请求失败,map.tianditu,天地图503,天地图请求503,接口503错误怎么办,vue天地图,uniAPP天地图,获取定位接口服务器报错503,获取当前定位,定位功能,IP属地定位,天地图服务器报错,如何解决报错,net::ERRABORTED503(ServiceTemporarilyUnavailabl),GET,POST,服务暂时不可用,react天地图,一直等待吗,报错怎么办,定位报错,轨迹,经纬度,天地图服务器503,在vue2

🏆 前端领域优质创作者 4438

二十一、CANdelaStudio深入-SPRMIB的配置

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的肯定响应抑制位配置,欢迎各位朋友订阅、评论,可以提出宝贵意见,以持续输出更好的作品,同时会根据评论、私信不定期更新文章内容,以及专栏目录。订阅该专栏的朋友可私信小编免费答疑解惑(^U^)ノ~YO CANdelaStudio-从入门到深入目录 文章目录CANdelaStu

诊断协议那些事儿's blog 1869

设计一个三维向量类 并实现向量的加法 减法以及乘法除法

class Vector: def __init__(self,a,b,c): #初始化方法 进行传参 self.x=a self.y=b self.z=c def plus(self,m,n): #定义向量的加法运算 self.x=m.x+n.x self.y=m.y+n.y self.z=m.z+n.z print((self....

gs1we1的博客 7533

OpenClaw Skill 开发全攻略|2026 最新机制 + 文件处理实操,看完直接落地开发

很多新手刚接触时,会把 Skill 想得很复杂,其实大可不必。OpenClaw 中的每个 Skill,本质就是一套“能力描述 + 执行逻辑”的组合包,简单说就是“告诉 AI 你能做什么、怎么做,它就会调用你”,核心特征可以总结为这几点,好记又实用:核心载体:以文件夹为单位,不管多简单的 Skill,文件夹里都必须有 SKILL.md 文件——这是 AI 识别技能的唯一依据,少了它,再完善的代码也没用;

haolove527的专栏 7025

向量加减法首尾规律_向量的加减法

求两个向量的和向量的运算叫做向量的加法.法则:①三角形法则;②平行四边形法则.运算律:交换律+=+,结合律(+)+=+(+).4、向量的减法向量的加法和减法互为逆运算.已知两个向量的和及其中一个向量,求另一个向量的运算叫做向量的减法.差向量:向量加上的相反向量,叫做与的差(向量)求差向量的方法:向量减法的三角形法则,即减向量的终点指向被减向量的终点.二、重难点知识剖析1、的字母是有顺序的,起点在前...

weixin_39775127的博客 2700

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

三维向量加减乘c语言源代码,设计一个三维向量类,并实现向量的加法、减法以及向量瑜标量的乘法和除法...

1 class vector3:2 def __init__(self, x_ = 0, y_ = 0, z_ = 0):3 self.x = x_4 self.y = y_5 self.z = z_6 def __add__(self, obj):7 return vector3(self.x+obj.x, self.y+obj.y, self.z+obj.z)8 def ...

weixin_39747399的博客 1755

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python向量运算_Python线性代数学习笔记——向量的基本运算,以及Python代码的实现...

我们在小学的时候,学完了什么是数字之后,接下来学习的是什么呢?答:数字的加、减、乘、除的基本运算同理,上一篇学习了什么是向量之后,我们接着来学习向量的基本运算我们先来看一个东西,如下图相信,很多人都不会陌生,我们高中学习物理的时候,都学习过平行四边形定则。两个力合成时,以表示这两个力的线段为邻边作平行四边形,这个平行四边形的对角线就表示合力的大小和方向,这就叫做平行四边形定则(Parallelog...

weixin_39877504的博客 1696

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

python画与x轴平行_Python线性代数学习笔记——向量的基本运算,以及Python代码的实现...

我们在小学的时候,学完了什么是数字之后,接下来学习的是什么呢? 答:数字的加、减、乘、除的基本运算同理,上一篇学习了什么是向量之后,我们接着来学习向量的基本运算我们先来看一个东西,如下图相信,很多人都不会陌生,我们高中学习物理的时候,都学习过平行四边形定则。两个力合成时,以表示这两个力的线段为邻边作平行四边形,这个平行四边形的对角线就表示合力的大小和方向,这就叫做平行四边形定则(Para...

weixin_35699471的博客 208

【愚公系列】2023年08月 3D数学-向量的运算

向量的运算包括加法、减法、数量积和向量积四种。具体如下:向量加法:将两个向量相加,即将一个向量的终点与另一个向量的起点重合,然后从它们的起点(或终点)出发,到达它们的终点(或起点)。向量加法满足交换律和结合律。向量减法:将一个向量的反向量与另一个向量相加,即将一个向量的起点与另一个向量的起点重合,然后从它们的终点开始,到达另一个向量的终点。向量减法也满足交换律和结合律。数量积(点积):将两个向量的对应分量相乘再相加得到一个标量。

愚公智库 2万+

实现三维向量之间的加法与减法

任务描述 实现三维向量之间的加法与减法的功能。 ####相关知识 在 Python 面向对象编程中,类的特殊方法在形式上是前后各有 2 个下划线,作用是实现与某个运算符或内置函数的对应关系。例如,如果某个类实现了__len__()这个特殊方法,那么这个类的对象就支持内置函数len();如果某个类实现了__add__()这个特殊方法,那么这个类的对象就支持加法运算符;如果某个类实现了__sub__()这个特殊方法,那么这个类的对象就支持减法运算符;如果某个类实现了__str__()这个特殊方法,那么这个类的对

qq_41579955的博客 7877
上一篇: oracle时间问题 与case then
下一篇: java的BigDecimal比较大小
dffxwe51549
博客等级 码龄12年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值