opt_rot.htm

来自「Matlab实现光线跟踪算法」· HTM 代码 · 共 76 行

HTM
76
字号
<HTML>                                              <HEAD>                                                <TITLE>/</TITLE>                                    <META NAME="GENERATOR" CONTENT="HTML-TOOLBOX ">   </HEAD>                                             <BODY bgcolor="#FFFFF0"> <HR WIDTH="100%"></P> <CENTER><P><FONT COLOR="#000000"><FONT SIZE=+3>Cross-linked m-file</FONT></FONT></P></CENTER> <CENTER><P><FONT COLOR="#000000"><FONT SIZE=+1></FONT></FONT></P></CENTER> <CENTER><P><FONT COLOR="#000000"><FONT SIZE=+2>opt_rot.m</FONT></FONT></P></CENTER> <CENTER><P><FONT COLOR="#000000"><FONT SIZE=+1>Located in:</FONT></FONT></P></CENTER> <CENTER><P><FONT COLOR="#000000"><FONT SIZE=+1>/home/bjorn/matlab/Optical_bench</FONT></FONT></P></CENTER> <P><HR WIDTH="100%"></P> <P><FONT COLOR="#000000"><FONT SIZE=+2>Function synopsis</FONT></FONT></P> <P><FONT COLOR="#000000"><FONT SIZE=+1> OPT_ROT - rotate vector IN_V THEDA radians around ROT_V                                                                                             </FONT></FONT></P> <P><HR WIDTH="100%"></P> <P><FONT COLOR="#000000"><FONT SIZE=+2>Function comments</FONT></FONT></P> <pre> % </pre> <P><HR WIDTH="100%"></P> <P><FONT COLOR="#000000"><FONT SIZE=+1>m-files that call opt_rot.m</FONT></FONT></P> <UL> <LI><A HREF ="opt_refraction.htm">opt_refraction</A></LI> <LI><A HREF ="opt_plotoptics.htm">opt_plotoptics</A></LI> </UL> <P><HR WIDTH="100%"></P> <P><FONT COLOR="#000000"><FONT SIZE=+1>All the cross references in the source m-code of opt_rot.m</FONT></FONT></P> <pre> function out_v = opt_rot(in_v,rot_v,theta) % OPT_ROT - rotate vector IN_V THEDA radians around ROT_V %  % Version: 1.0 % Copyright: Bjorn Gustavsson 20020430  transpose_after = 1;  if size(in_v)==[3 1]   in_v = in_v';   rot_v = rot_v';   transpose_after = 0; end rotv = rot_v/norm(rot_v); e1 = rotv; out_v = in_v;  if norm(in_v)    e2 = cross(e1,in_v/norm(in_v));    if norm(e2)      e2 = e2/norm(e2);     e3 = cross(e1,e2);      trmtr = [e1;e2;e3];      rmatr = [1 0 0;0 cos(theta) -sin(theta);0 sin(theta) cos(theta)];      out_v = trmtr'*rmatr*trmtr*in_v';      if transpose_after        out_v = out_v';      end    end  end </pre> <P><HR WIDTH="100%"></P> <P><I><FONT COLOR="#0000FF"><FONT SIZE=+1>Written by  B. Gustavsson 13:27 29/1 2003 <IMG SRC = "file:/home/bjorn/matlab/Local/Tools/htmltool/gifs/copyright.gif" ></FONT></FONT></I></P> <P><I><FONT COLOR="#0000FF"><FONT SIZE=+1>E-mail:</B><A HREF = "mailto:bjorn@irf.se">bjorn@irf.se</A></H4></FONT></FONT></I></P> 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?