首页 > 其他 > 详细

Matlab求切线和法平面(surfnorm,jacobian)

时间:2021-08-26 09:13:21      阅读:19      评论:0      收藏:0      [点我收藏+]

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!

 

 

      

Matlab求切线和法平面(surfnorm,jacobian)

原文:https://www.cnblogs.com/lwh1018/p/15164738.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!