官术网_书友最值得收藏!

2.1 切向量和法向量

向量又稱作歐幾里得向量(Euclidean vector)、空間向量(spatial vector)或者幾何向量(geometric vector)。向量通常由大小(magnitude)和方向(direction)兩個元素構成。向量大小又叫作歐幾里得距離(Euclidean distance)、歐幾里得范數(Euclidean norm)或2范數(2-norm),MATLAB對應函數為norm()和vecnorm()。

和起點無關的向量叫作自由向量(free vector),如圖2.1(a)所示;和起點有關的向量被稱作固定向量(fixed vector),如圖2.1(b)所示;方向上沿著某一條特定直線的向量,稱之為滑動向量(sliding vector),如圖2.1(c)所示。

圖2.1 自由向量、固定向量和滑動向量

直線的法向量(normal vector)為垂直于該直線的非零向量,如圖2.2(a)所示。光滑曲線上某點的法向量垂直于曲線上該點處的切線,如圖2.2(b)所示。平面法向量(a normal line to a surface)垂直于平面內任意直線,如圖2.2(c)所示。光滑連續曲面內某點的法向量為曲面該點處切平面(tangent plane)的法向量,如圖2.2(d)所示。

本章用n來表達法向量,而單位法向量(unit nor mal vector)N通過下式獲得:

單位法向量N模為1。

圖2.2 直線、平面和光滑曲面法向量

直線上任意一點的切向量(tangent vector)是和直線相切的非零向量,如圖2.3(a)所示。直線某點處切向量和法向量垂直,即兩者內積為0。圖2.3(b)所示為光滑曲線的切線。三維空間平面上某點的切線有無數條,如圖2.3(c)所示。同樣,如圖2.3(d)所示,光滑曲面上某點的切線有無數條,且都在曲面該點的切平面內。本書一般用τ來表達切向量。單位切向量(unit tangent vector)T通過下式獲得:

單位切向量T模為1。

圖2.3 直線、平面和光滑曲面切向量

向量外積,也叫叉乘(cross product)或向量積(vector product)。向量內積(inner product)或標量積(scalar product)為標量,而向量叉乘結果為向量。ab的向量積,記作a × ba × b方向分別垂直于向量ab,即a × b垂直于向量ab構成的平面。向量ab以及a × b構成右手法則,如圖2.4所示,同時在圖中可以看到a × bb × a方向相反。

圖2.4 向量叉乘右手法則

a × b的模通過下式獲得:

其中,θ為向量ab的夾角。

如圖2.5(a)所示,空間直角坐標系中三個正交基底向量ix軸正方向)、jy軸正方向)和kz軸正方向)之間滿足向量叉乘關系,如下:

圖2.5 三維空間正交單位向量基底之間關系

圖2.5(b)展示了以上三個等式中ijk的前后順序關系。若調換它們的順序,會得到以下三個運算式:

向量與自身叉乘等于0向量,如下:

叉乘運算的常見性質如下:

若用基底向量ijk表達向量ab

整理向量ab的叉乘,如下:

則結果為以下行列式值:

下面結合代碼計算兩個向量的叉乘:

a × b結果如下:

b × a結果如下:

MATLAB計算叉乘函數為cross(),圖2.6展示cross()計算叉乘a × bb × a,并用quiver3() 繪制結果。此外,圖2.6用fill3()函數繪制ab構造平面。

圖2.6 向量ab叉乘

以下代碼獲得圖2.6。

B4_Ch1_1.m

clear all; close all; clc

O = [0, 0, 0];
A = [-2,1,1];
B = [1,-2,-1];
AO = A-O;
BO = B-O;
cross_prod1 = cross(AO,BO)
cross_prod2 = cross(BO,AO)

figure( 1)

points=[ A' B' O'];
h5 = fill3(points(1,:),points(2,:),points(3,:),'b');
h5.EdgeColor = [1 1 1];
h5.FaceAlpha = 0.4;  hold on

h1 = quiver3(O(1),O(2),O(3),AO(1),AO(2),AO(3));
h2 = quiver3(O(1),O(2),O(3),BO(1),BO(2),BO(3));
h1.AutoScale = 'off'; h2.AutoScale = 'off';
h1.LineWidth = 1; h2.LineWidth = 1;
h3 =
quiver3(O(1),O(2),O(3),cr oss_prod1(1),cross_prod1(2),cross_prod1(3)); hold on
h4 = quiver3(O(1),O(2),O(3),cross_prod2(1),cross_prod2(2),cross_prod2(3));
h3.AutoScale = 'off'; h4.AutoScale = 'off';
h3.LineWidth = 1; h4.LineWidth =  1;

daspect([1,1,1]); box on; grid off; view(-45,45)
xlabel('x'); ylabel('y'); zlabel('z')
hAxis = gca;
hAxis.XRuler.FirstCrossoverValue  = 0; % X crossover with Y axis
hAxis.YRuler.FirstCrossoverValue  = 0; % Y crossover with X axis
hAxis.ZRuler.FirstCrossoverValue  = 0; % Z crossover with X axis
hAxis.ZRuler.SecondCrossoverValue = 0; % Z crossover with Y axis
hAxis.XRuler.SecondCrossoverValue = 0; % X crossover with Z axis
hAxis.YRuler.SecondCrossoverValue = 0; % Y crossover with Z axis
主站蜘蛛池模板: 谷城县| 鄂托克前旗| 赤城县| 南宁市| 当雄县| 九龙城区| 昂仁县| 格尔木市| 晋宁县| 黄平县| 宣威市| 滨州市| 富阳市| 福海县| 延安市| 古蔺县| 揭东县| 驻马店市| 厦门市| 连山| 萨迦县| 沧源| 璧山县| 尚义县| 开江县| 桃园县| 兴山县| 报价| 长汀县| 连平县| 隆化县| 潜江市| 威远县| 墨玉县| 中牟县| 屏东县| 苍梧县| 霍城县| 沁水县| 肃宁县| 廊坊市|