向量的计算(减法)

本文介绍了向量的减法操作,详细说明了减法的几何意义——从向量b的终点开始,指向向量a的终点。在Unity中,两个向量相减后,新向量起始于原向量的起点,可用于计算两点间距离和确定相对方向。通过代码表示,解释了实际应用中的向量减法规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

减法:等于各分量相减

公式:[x1,y1,z1]-[x2,y2,z2]=[x1-x2,y1-y2,z1-z2]

几何意义:向量a,向量b相减,理解为以b的终点为始点,以a的终点为终点的向量,方向由b指向a (指向被减数)

在Unity中 两个向量相减 后的向量的起始坐标和a,b的起点相同(如下图)

在这里插入图片描述使用 ti-t2后得到的向量是这样的(如下图)
在这里插入图片描述
在这里插入图片描述

应用:计算两点之间的距离和相对方向

代码表示:


 //相减
    void Demo03()
    {
        Vector3 dir = t1.position - t2.position;
        //方向:指向被减向量(t1)
        //大小:两点间距
        //注意:实际位置要平移到坐标原点(这里 t1,t2都是世界坐标)
        //t3沿着dir方向移动 dir.normalized:获取方向,不受大小的影响
        t3.Translate(dir.normalized);
        Debug.DrawLine(Vector3.zero,dir);
    }

实际情况:在这里插入图片描述

### 向量减法的概念与实现 向量减法是指通过从一个向量中减去另一个向量,得到一个新的向量。具体来说,如果存在两个向量 \( \vec{a} = (a_1, a_2, ..., a_n) \) 和 \( \vec{b} = (b_1, b_2, ..., b_n) \),那么它们的差可以通过对应分量相减的方式计算得出: \[ \vec{c} = \vec{a} - \vec{b} = (a_1 - b_1, a_2 - b_2, ..., a_n - b_n) \] 这种操作在几何上可以解释为:找到从向量 \( \vec{b} \) 的终点指向向量 \( \vec{a} \) 终点的方向矢量。 #### 实现方式 以下是几种常见的编程语言中的向量减法实现方法。 --- #### **Python 实现** 利用 Python 自带的数据结构或者第三方库 NumPy 来完成向量减法的操作非常简单。下面分别展示两种不同的实现方式。 ##### 方法一:纯 Python 实现 ```python class Vector: def __init__(self, components): self.components = components def subtract(self, other_vector): if len(self.components) != len(other_vector.components): raise ValueError("Vectors must have the same dimension.") result_components = [ c1 - c2 for c1, c2 in zip(self.components, other_vector.components) ] return Vector(result_components) # 示例 vector_a = Vector([1, 2, 3]) vector_b = Vector([4, 5, 6]) result_vector = vector_a.subtract(vector_b) print(result_vector.components) # 输出 [-3, -3, -3] ``` ##### 方法二:基于 NumPy 的实现 NumPy 提供了更简洁和高效的数组运算功能。 ```python import numpy as np v1 = np.array([1, 2, 3]) v2 = np.array([4, 5, 6]) result = v1 - v2 print(result) # 输出 [-3 -3 -3] ``` 这种方法不仅代码更加紧凑,而且由于 NumPy 对底层进行了优化,因此适合处理大规模数据集[^5]。 --- #### **C# Unity 实现** 在 Unity 游戏开发环境中,可以直接使用内置的 `Vector3` 类型来进行向量减法操作。 ```csharp using UnityEngine; public class VectorBasics : MonoBehaviour { void Example() { Vector3 a = new Vector3(1, 2, 3); Vector3 b = new Vector3(4, 5, 6); // 向量减法 Vector3 diff = a - b; Debug.Log(diff); // 输出 (-3, -3, -3) } } ``` 此代码片段展示了如何创建两个三维向量以及执行基本的减法运算[^3]。 --- #### **理论背景补充** 向量减法的一个重要应用场景是在物理模拟中求解相对位移或速度差异等问题。例如,在游戏引擎中经常需要用到物体之间的距离变化情况来判断碰撞检测或其他交互逻辑。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值