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

7. 3次元形状を作る〜円柱(1)

今度は patch で円柱(N角柱)を作成してみます。円柱の基本配置は、底面の中心が原点と一致し、軸が z 軸と平行であるような配置とします。基本配置の円柱を作成するMATLABスクリプトをコード1に、このスクリプトによる描画の結果を図1にそれぞれ示します。

make_cylinder_special.m
% make_cylinder_special.m

clear; close all;

% Cylinder spec
Radius = 0.1;
Height = 0.3;
SideCount = 20;

% Vertices
vertices = zeros(2*SideCount, 3);
for i = 1:SideCount
    theta = 2*pi/SideCount*(i-1);
    vertices(i,:) = [Radius*cos(theta), Radius*sin(theta), 0];
    vertices(SideCount+i,:) = [Radius*cos(theta), Radius*sin(theta), Height];
end

% Side faces
sideFaces = zeros(SideCount, 4);
for i = 1:(SideCount-1)
    sideFaces(i,:) = [i, i+1, SideCount+i+1, SideCount+i];
end
sideFaces(SideCount,:) = [SideCount, 1, SideCount+1, 2*SideCount];

% Bottom faces
bottomFaces = [
    1:SideCount;
    (SideCount+1):2*SideCount];

% Draw patches
figure(1);
h_side = patch('Faces', sideFaces, 'Vertices', vertices, 'FaceColor', 'y');
h_bottom = patch('Faces', bottomFaces, 'Vertices', vertices, 'FaceColor', 'y');

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


make_cylinder_special

図1: patch により面を組み合わせて作成した円柱(基本配置)