Home > リソース > MATLABでアニメーション作成 > 5. 3次元形状を作る〜直方体(1)
MATLABでアニメーション作成

5. 3次元形状を作る〜直方体(1)

patch コマンドを用いて、6個の面を組み合わせて直方体を作成してみましょう。まずは図1に示すように、頂点の1つが座標系の原点と一致し、各辺が座標軸と平行な場合を考えてみます(これを基本配置と呼ぶことにします)。この場合、3辺の長さ(Lx, Ly, Lz)から、8個の頂点の座標は明らかです。6個の面は次の6通りの頂点の結合で与えられます。



block_special

図1: 直方体(基本配置)

基本配置の直方体を作成するMATLABスクリプトをコード1に、このスクリプトによる描画の結果を図2にそれぞれ示します。

make_block_special.m
% make_block_special.m

clear; close all;

% Side lengths
Lx = 0.15;
Ly = 0.05;
Lz = 0.30;

% Vertices
vertices = [
    0,   0,  0;  % #1
    Lx,  0,  0;  % #2
    0,  Ly,  0;  % #3
    0,   0, Lz;  % #4
    Lx, Ly,  0;  % #5
    0,  Ly, Lz;  % #6
    Lx,  0, Lz;  % #7
    Lx, Ly, Lz]; % #8

% Faces
faces = [
    1, 2, 5, 3;  % #1
    1, 3, 6, 4;  % #2
    1, 4, 7, 2;  % #3
    4, 7, 8, 6;  % #4
    2, 5, 8, 7;  % #5
    3, 6, 8, 5]; % #6

% Draw patch
figure(1);
h = patch('Faces', faces, 'Vertices', vertices, 'FaceColor', 'y');

% Axes settings
xlabel('x'); ylabel('y'); zlabel('z');
axis vis3d equal;
view([-37.5, 30]);
camlight;
grid on;
xlim([-0.15, 0.35]);
ylim([-0.2, 0.3]);
zlim([-0.1, 0.4]);
コード1: 直方体を作成するMATLABスクリプト(基本配置)



図2: 6個の面を組み合わせて作成した直方体(基本配置)