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


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!

 

 

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM