aboutvector.htm

来自「电脑图学(Computer Graphics)是资料结构、演算法与数学的应用」· HTM 代码 · 共 159 行

HTM
159
字号
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>






  
  
  
  
  
  
  <link rel="stylesheet" href="css/stdlayout.css" type="text/css">






  
  
  
  
  
  
  <link rel="stylesheet" href="css/print.css" type="text/css">






  
  
  
  
  
  
  <meta content="text/html; charset=gb2312" http-equiv="content-type">






  
  
  
  
  
  
  <title>向量运算</title>
</head>


<body>






<h3><a href="http://caterpillar.onlyfun.net/GossipCN/index.html">From
Gossip@caterpillar</a></h3>






<h1><a href="ComputerGraphics.htm">Computer Graphics: 向量运算</a></h1>






要学习电脑图学,除了对各种座标系统的掌握之外,不可或缺的就是向量的应用,这边介绍一些基本的向量观念与其应用。<br>
<br>
假设三维空间中有一点(a, b, c),则我们定义向量如下:<br>






<img style="width: 358px; height: 182px;" alt="" src="images/aboutVector-1.jpg"><br>






<br>







A向量为由原点出发、具有大小与方向性的向量,大小即为原点至该点的长度,而方向即为图中箭头所表示的;当向量长度为1时,我们称为“单位向量”,通常使用i, j, k来表示X轴、Y轴与Z轴的单位向量,而向量的表示法,可以使用上图右式所示。<br>
<br>
向量表示法的好处是可以同时指明某变量的大小与方向,例如在模拟物理运动或力的作用时,向量表示法就相当的有用,例如若某物体的前进方向与速度,可以用向
量来同时表示其X分量与Y分量的速度,如(a,
b)就表示其在X方向的速度为a,Y方向速度为b,如果物体弹性碰撞右墙,则只要改变X分量为负方向,也就是(-a, b)即可。 <br>
<img style="width: 198px; height: 172px;" alt="" src="images/aboutVector-2.jpg"><br>
<br>
定义两个向量A(x1, y1, z1)与B(x2, y2, z2)的内积运算为:<br>
<div style="margin-left: 40px;"><span style="font-weight: bold; font-family: Courier New,Courier,monospace;">A * B = (x1, y1, z1) * (x2, y2, z2) = x1*x2 + y1*y2 + z1*z2</span><br>
</div>
<br>
如上式所示,向量内积运算后是个纯量,不带有方向性,经过导证,向量内积运算也等同于下面这个式子:<br>
<div style="margin-left: 40px;"><span style="font-weight: bold; font-family: Courier New,Courier,monospace;">A * B = | A | * | B | * cos&theta;</span><br>
</div>
<br>
其中&theta;与向量内积在图形上的意义如下所示:<br>
<img style="width: 260px; height: 178px;" alt="" src="images/aboutVector-3.jpg"><br>
<br>
也就是说,可以利用向量内积求得A向量在B向量上的投影(或反过来求B向量在A向量上的投影)。<br>
<br>
向量内积在图学上的应用之一,就是求得光线的照射量,我们必须先知道,与平面垂直的向量为平面的法向量,如果有一平行光源照射至某平面,则我们可以藉由平
面法向量与光源的向量求内积,如果内积为零,则表示光源与平面平行,则平面受光量为0,内积求得值的绝对值越大,则平面受光量越大。 <br>
<img style="width: 198px; height: 132px;" alt="" src="images/aboutVector-4.jpg"><br>
<br>
定义A(x1, y1, z1)与B(x2, y2, z2)两向量的外积为<br>
<img style="width: 464px; height: 124px;" alt="" src="images/aboutVector-5.jpg"><br>
<br>
由上式可以得知,向量外积运算后会得到另一个向量,其关系如下:<br>






<span class="postbody"></span><img style="width: 202px; height: 168px;" alt="" src="images/aboutVector-6.jpg"><br>
<br>
向量外积运算后的方向判断若使用右手来判断,则右手食指为A向量,中指为B向量,姆指就为AXB,或单纯右手四指由A绕至B,姆指即为AXB的方向,而 AXB的大小为:<br>
<div style="margin-left: 40px;"><span style="font-weight: bold; font-family: Courier New,Courier,monospace;">| A X B | = | A | * | B | * sin&theta;</span><br>
</div>
<br>
向量外积的使用在图学中也是相当广泛,例如凸面体的隐藏面判断,可以利用向量外积求得一平面的法向量,假设位于Z轴的正方向往负方向看过去,则若平面法向量的Z分量为正,表示平面朝向您,为可视平面,若Z分量为负,表示平面朝另一面,您看不到这个平面。 <br>
<img style="width: 370px; height: 188px;" alt="" src="images/aboutVector-7.jpg"><br>
关于向量、内积与外积的应用还有得多,总之将线代好好研读一遍,了解向量并应用于图学上是一个重要的课题。<br>
<a href="http://episte.math.ntu.edu.tw/articles/mm/mm_15_1_12/index.html"><br>
向量外积与四元数</a> 有一些外积的基本介绍。<br>
<br>






</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?