1、matlab中繪制法線的函數是:
surfnorm(X,Y,Z) 繪制(X,Y,Z)所表示的曲面的法線
[Nx,Ny,Nz] = surfnorm(X,Y,Z) 給出(X,Y,Z)所表示的曲面的法線數據
舉個例子:繪制一個球面x^2+y^2=z^2的法線。
輸入命令
[X,Y,Z] = sphere(); %sphere函數繪制半徑為1的圓
surfnorm( X, Y, Z ); %繪制圓形法線
surfnorm(X( : ,11 : 21), y( : ,11 : 21), ( : ,11 : 21 ),) %這邊取一半的數據,繪制半個

2、繪制切線和法平面最重要的函數當然是jacobian.
jacobian( [ x ,y ,z ], t )就能得到 x, y, z 關於 t 的導數
輸入命令定義空間曲線
syms x y z t %聲明xyzt為變量
x = sin(t); y = cos(t);z = 2*t
S = jacobian([x,y,z],t) %S

我們可以看到S即曲線方程的切向量
我們要求某一點的導函數需要給S中的t賦值,假如要找在t=pi/4處的法線。
t = pi/4;
S0 = subs(S); %subs用來替換S中給t新賦的值
此時S0 =
![]()
求在t=pi/4處的切線和法平面方程
切線方程F為
x = x0 + x'(t)
y = y0 + y'(t)
z = z0 + z'(t)
法平面方程G為
( x - x0) * x'( t0 ) + ( y- y0) * y'(t0) + (z-z0) * z'(t0) = 0
轉為matlab語句可寫為
F=-[ x; y; z ]+[ x0; y0; z0 ]+S0 * t
G=[x - x0, y - y0, z - z0] * S0
回到程序,輸入命令
x0=sin(t)
y0=cos(t)
z0=2*t
F=-[ x; y; z ]+[ x0; y0; z0 ]+S0 * t
G=[x - x0, y - y0, z - z0] * S0
可使用命令pretty(F),pretty(G)來查看切線和法平面方程

得到切線方程F,和法平面方程G以后,繪制圖形就手到擒來了。
You can learn anything!
