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

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

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

make_cylinder_special.sce
// make_cylinder_special.sce

clear; xdel(winsid());

exec('genpat.sci', -1);

// 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];

// Side patches
sidePatches = genpat(vertices, sideFaces);

// Bottom patches
bottomPatches = genpat(vertices, bottomFaces);

// Draw patches
h_fig = figure;
h_fig.background = 8;
h_sidePat = plot3d(sidePatches.x, sidePatches.y, sidePatches.z);
h_sidePat.color_mode = 4;
h_sidePat.foreground = 1;
h_sidePat.hiddencolor = 4;
h_bottomPat = plot3d(bottomPatches.x, bottomPatches.y, bottomPatches.z);
h_bottomPat.color_mode = 4;
h_bottomPat.foreground = 1;
h_bottomPat.hiddencolor = 4;

// Axes settings
xlabel("x"); ylabel("y"); zlabel("z");
h_axes = gca();
h_axes.isoview = "on";
h_axes.box = "off";
h_axes.rotation_angles = [63.5, -127];
h_axes.data_bounds = [-0.2, -0.2, 0; 0.2, 0.2, 0.4];
xgrid;
コード1: 円柱を作成するScilabスクリプト(基本配置)
make_cylinder_special
図1: plot3d によりパッチを組み合わせて作成した円柱(基本配置)
スポンサーリンク