matlabで三角図を作る

目的

ベクトルの回転平行移動を利用して、
単位ベクトルで構成した三角形を、平面に映して、
三角図を作ります。

ソース

function [ result ] = ThreeMatToTriangle( X )

%--------------------------------------
 movX = move( X ,-1,0,0 );
 rotY = rot( movX , -45, 3 );
 rotZ = rot( rotY , atan(1/sqrt(2))*180/pi+90, 2 );
 result = rotZ;
end

テストドライバ

% Test Driver
close all;
clear all;
clc;

h = HandlePlot3;


valX = 1;
valY = 1;
valZ = 1;

xx = zeros(4 , 1);
yy = zeros(4 , 1);
zz = zeros(4 , 1);


xx(1) = valX;
yy(2) = valY;
zz(3) = valZ;
xx(4) = valX;


X = [ xx , yy , zz ];

%--------------------------------------
r = plot3mat( X );
set( r , 'Color','r','LineWidth', 4);

%--------------------------------------
 movX = move( X ,-1,0,0  );
 mX = plot3mat( movX );
 set( mX , 'Color','g','LineWidth', 4);
%--------------------------------------
rotY = rot( movX , -45, 3 );
rY = plot3mat( rotY );
set( rY , 'Color','b','LineWidth', 4);

% %--------------------------------------
rotZ = rot( rotY , atan(1/sqrt(2))*180/pi+90, 2 );
rZ = plot3mat( rotZ );
set( rZ , 'Color','c','LineWidth', 4);

TriX = ThreeMatToTriangle( X );
tri = plot3mat( TriX );
set( tri , 'Color','m','LineWidth', 4);

axis square;