UnityUnity 几何知识弧度三角函数向量运算点乘叉乘

Posted 是嘟嘟啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UnityUnity 几何知识弧度三角函数向量运算点乘叉乘相关的知识,希望对你有一定的参考价值。

文章目录


基础几何知识

角的度量方式

角的度量方式分为角度(Degree)和弧度(Radian)两种。角度就是将一个圆形切成360份,每一份就是1度角。弧度是当弧长等于圆的半径时即为1弧度。

如图所示:

角度弧度转换

常用换算:
  π = 180 度 \\ \\pi = 180度  π=180
  1 弧 度 = 180 度 / π \\ 1弧度 = 180度 / \\pi  1=180/π
  1 角 度 = π / 180 度 \\ 1角度 = \\pi / 180度  1=π/180

角度转弧度:

  • 转换公式:   弧 度 = 角 度 数 ∗ π / 180 \\ 弧度 = 角度数 * \\pi / 180  =π/180
  • Unity代码:radian = x * Mathf.Deg2Rad;

弧度转角度:

  • 转换公式:   角 度 = 弧 度 数 ∗ 180 / π \\ 角度 = 弧度数 * 180 / \\pi  =180/π
  • Unity代码:degree = x * Mathf.Rad2Deg;

三角函数

在直角三角形中(下图为例),如果   a 、 b 、 c 、 x \\ a、b、c、x  abcx中的两个变量已知则能计算出另外两个变量的值。

计算公式

正弦   s i n ( x ) = a / c \\ sin(x) = a / c  sin(x)=a/c (对比斜)
余弦   c o s ( x ) = b / c \\ cos(x) = b / c  cos(x)=b/c (临比斜)
正切   t a n ( x ) = a / b \\ tan(x) = a / b  tan(x)=a/b (对比临)
余切   c o t ( x ) = b / a \\ cot(x) = b / a  cot(x)=b/a
正割   s e c ( x ) = c / b \\ sec(x) = c / b  sec(x)=c/b
余割   c s c ( x ) = c / a \\ csc(x) = c / a  csc(x)=c/a
反正弦   a r c s i n ( a / c ) = x \\ arcsin(a / c) = x  arcsin(a/c)=x
反余弦   a r c c o s ( b / c ) = x \\ arccos(b / c) = x  arccos(b/c)=x
反正切   a r c t a n ( a / b ) = x \\ arctan(a / b) = x  arctan(a/b)=x

已知一角和一边,求另外两边,用sin、cos、tan。
已知两边,求角,用arcsin、arccos、arctan。

常用三角函数值

使用方法

已知一个角和一条边,用   s i n 、 c o s 、 t a n \\ sin、cos、tan  sincostan
已知两条边求角度,用   A r c S i n 、 A r c C o s 、 A r c T a n \\ ArcSin、ArcCos、ArcTan  ArcSinArcCosArcTan

Unity应用

在代码中调用Mathf.Sin等三角函数方法时传入的参数并不是角度,而是弧度。

比如如果我们想要获取sin30度的值不能这样写:Mathf.Sin(30)。这样是错的
正确的写法应该是Mathf.Sin(30 * Mathf.Deg2Rad),将角度转为弧度再传参,得到的结果就是0.5了。

下图为官方API的描述。

要求输入的角度是以弧度为单位的,所以要用这些方法时经常要用到角度和弧度的转换。

向量

向量是一个数字列表,表示各个维度上的有向位移。它是一个有大小有方向的物理量。大小就是方向的模长,方向描述了空间中向量的指向。向量可以用来表示物体的位置和方向。

向量的大小:也就是向量的长度(一般称作为 模),向量a的模记为   ∣ a ⃗ ∣ \\ | \\vec a |  a ,若   a ⃗ = ( x , y , z ) \\ \\vec a = (x, y, z)  a =(x,y,z)   ∣ a ⃗ ∣ = x 2 + y 2 + z 2 \\ | \\vec a | = \\sqrt x^2 + y^2 + z^2  a =x2+y2+z2 。代码中使用myVector.magnitude来获取向量的大小。

单位向量:即模为1的向量,在Unity中单位向量也就代表了向量的方向。可以记作 a ^ \\widehata a 。一个向量的单位向量,可以通过除以它模得到,即 a ^ = a ⃗ ∣ a ⃗ ∣ \\widehata = \\frac \\vec a | \\vec a | a =a a 。代码中使用myVector.normalized来获取向量的单位向量,也就是向量的方向。

零向量:即模为0的向量,零向量的方向是任意的。

相反向量:长度相等方向相反的向量,   a ⃗ \\ \\vec a  a 的相反向量为   − a ⃗ \\ -\\vec a  a

平行(共线)向量:方向相同或相反的非零向量,记作   a ⃗ / / b ⃗ \\ \\vec a // \\vec b  a //b

向量加减法

向量的加减就是向量对应分量的加减,类似于物理学中力的正交分解。

向量相减

向量相减等于各分量相减。

  [ x 1 , y 1 , z 1 ] − [ x 2 , y 2 , z 2 ] = [ x 1 − x 2 , y 1 − y 2 , z 1 − z 2 ] \\ [x1,y1,z1] - [x2,y2,z2] = [x1-x2 , y1-y2 , z1-z2]  [x1,y1,z1][x2,y2,z2]=[x1x2,y1y2,z1z2]

几何意义:向量a与向量b相减,结果理解为以b的终点为起点,以a的终点为终点的向量。方向由b指向a。
注意:我们可以把向量相减理解为a、b终点的连接,但实际上该向量准确起始位置应该是坐标原点。

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

向量相加

向量相加等于各分量相加。

  [ x 1 , y 1 , z 1 ] + [ x 2 , y 2 , z 2 ] = [ x 1 + x 2 , y 1 + y 2 , z 1 + z 2 ] \\ [x1,y1,z1] + [x2,y2,z2] = [x1+x2 , y1+y2 , z1+z2]  [x1,y1,z1]+[x2,y2,z2]=[x1+x2,y1+y2,z1+z2]

几何意义:如下图,假设空间中有两个向量a和b,a与a’平行且长度相等,b与b’平行且长度相等。a+b就相当于a,b,a’,b’所围成的平行四边形的对角线。

也可以这么说,由向量a的起点出发,沿着a的方向走a的长度,然后沿着b的方向走b的长度,达到的点相当于从a的起点沿着a+b的方向走a+b的长度。

实际应用:物体的移动。

向量与标量的乘除

乘法:该向量的各分量与标量相乘   k [ x , y , z ] = [ x k , y k , z k ] \\ k[x, y, z] = [xk, yk, zk]  k[x,y,z]=[xk,yk,zk]
除法:该向量的各分量与标量相除   [ x , y , z ] / k = [ x / k , y / k , z / k ] \\ [x, y, z]/k = [x/k , y/k , z/k]  [x,y,z]/k=[x/k,y/k,z/k]
几何意义:缩放向量长度。

实际应用:加速、减速、放大、缩小。

点乘

点乘又称点积内积。表示为各分量的乘积和。

  [ x 1 , y 1 , z 1 ] ⋅ [ x 2 , y 2 , z 2 ] = x 1 x 2 + y 1 y 2 +

向量运算与几何意义

向量指具有大小和方向的量,也称为矢量。可以从几何和坐标两个角度来理解。

1. 几何表示

   向量可以用有向线段来表示。有向线段的长度表示向量的大小,向量的大小,也就是向量的长度。长度为 0 的向量叫做零向量。

   长度等于 1 个单位的向量,叫做单位向量。箭头所指的方向表示向量的方向。

2. 坐标表示

   空间中有无数条有向线段,长度和方向相同的向量也有无数条,那如何表征一个向量呢?

   在空间或者平面建立坐标系,任何一个向量都可以平移到以原点为起点的位置,这时就可以用向量终点的坐标来表征这个向量,即坐标表示,

   记为 $a = (x,y,...)$。

   坐标表示和几何表示是不同的,几何表示的向量可以是任意位置,而坐标表示的向量起点只能是原点。

 

向量是线性空间(参考博客)中的元素,线性空间定义了加法和数乘运算,即向量的加法和数乘。

1. 加法运算

   设两个向量 $a = (x_{1},y_{1}),b = (x_{2},y_{2})$

   先从坐标角度来理解下向量加法:两个向量和的坐标分别等于这两个向量相应坐标的和。

$$c = a + b = (x_{1} + x_{2}, y_{1} + y_{2})$$

   

   

2. 数乘运算

   

 

 

 

 

 

未完待续。。。。。。

以上是关于UnityUnity 几何知识弧度三角函数向量运算点乘叉乘的主要内容,如果未能解决你的问题,请参考以下文章

将几何画板x轴坐标值换成弧度制的方法

图形学计算机图形学知识点提纲3

向量运算与几何意义

向量运算

向量乘积的几何意义

计算机图形学几何变换基础