surfnorm(X,Y,Z) 绘制(X,Y,Z)所表示的曲面的法线
[Nx,Ny,Nz] = surfnorm(X,Y,Z) 给出(X,Y,Z)所表示的曲面的法线数据
输入命令
[X,Y,Z] = sphere(); %sphere函数绘制半径为1的圆
surfnorm( X, Y, Z ); %绘制圆形法线
surfnorm(X( : ,11 : 21), y( : ,11 : 21), ( : ,11 : 21 ),) %这边取一半的数据,绘制半个
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即曲线方程的切向量
t = pi/4;
S0 = subs(S); %subs用来替换S中给t新赋的值
此时S0 =
切线方程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!