patch コマンドを用いて、6個の面を組み合わせて直方体を作成してみましょう。まずは図1に示すように、頂点の1つが座標系の原点と一致し、各辺が座標軸と平行な場合を考えてみます(これを基本配置と呼ぶことにします)。この場合、3辺の長さ(Lx, Ly, Lz)から、8個の頂点の座標は明らかです。6個の面は次の6通りの頂点の結合で与えられます。
基本配置の直方体を作成するMATLABスクリプトをコード1に、このスクリプトによる描画の結果を図2にそれぞれ示します。
% 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]);