隐曲面的切平面与法线
自从R2021b
这个例子展示了如何找到隐式曲面的切平面和法线。此示例使用符号矩阵变量(使用symmatrix
数据类型)用于紧凑的数学符号。
曲面可以隐式地定义,例如球面 .一般来说,隐式曲面用方程表示 .这个例子找到了一个有半径的球的切平面和法线 .
创建一个符号矩阵变量 来表示 坐标。定义球面函数为 .
清晰;关闭所有;clc信谊r3 [1]矩阵F = r*r。”
f =
隐式方程
表示一个球体。把方程转化为信谊
数据类型使用symmatrix2sym
.用函数画出方程fimplicit3
函数。
Feqn = symmatrix2sym(f == 14)
feqn =
fimplicit3 (feqn)轴平等的轴([-6 6 -6 6 -6 6])
接下来,求出该点的切平面和法线 .
的梯度向量 是 .这一点的切平面方程 然后由 .在简洁的数学符号中,切平面方程可以写成 .
求的梯度
使用梯度
函数。注意,结果是一个3乘1的符号矩阵变量。
Fgrad = gradient(f,r)
fgrad =
大小(fgrad)
ans =1×23个1
定义切平面的方程。使用潜艇
函数求该点的梯度值
.
R0 = [-2,1,3];Fplane = (r-r0)*subs(fgrad,r,r0)
fplane =
画出点
使用plot3
,并画出切平面fimplicit3
.
持有在plot3 (r0(1)、r0(2)、r0 (3),“罗”,MarkerSize = 10,MarkerFaceColor =“r”fimplicit3(symmatrix2sym(fplane == 0))
这一点的法线方程 由 .在简洁的数学符号中,这个方程可以写成 .
定义法线的方程。
信谊tN = r0 + t*sub (fgrad,r,r0).'
n =
将法线方程转化为信谊
数据类型使用symmatrix2sym
.提取参数曲线
,
,
为法线通过索引到n
.画出法线fplot3
.
N = symmatrix2sym(N)
n =
fplot3 (n(1),(2)、n (3), (0 - 1),的r - >)