1

ルービックキューブの3Dモデルを作ろうとしています。

最初に patch コマンドを使用して試しました

vert = [0 0 0; 0 1 0; 1 1 0; 1 0 0 ; ...
        0 0 1;0 1 1; 1 1 1;1 0 1];
fac = [1 2 3 4; ...
    2 6 7 3; ...
    4 3 7 8; ...
    1 5 8 4; ...
    1 2 6 5; ...
    5 6 7 8];
k = patch('Faces',fac,'Vertices',vert,'FaceColor','r');  % patch function
material shiny;
alpha('color');
alphamap('rampdown');
view(30,30); 

しかし、各サーフェスに異なる色を適用する必要がある場合があるため、パッチ コマンドを複数回使用する必要がありました。したがって、必要なときにキューブ全体を参照できませんでした

私が見つけた別の方法はplot::Box、MuPADでコマンドを使用することでした

plot(plot::Box(0..1, 0..1, 0..1, Filled = TRUE,
               FillColor = RGB::Red),
     plot::Box(1..2, 0..1, 0..1, Filled = TRUE,
               FillColor = RGB::Red),
plot::Box(2..3, 0..1, 0..1, Filled = TRUE,
               FillColor = RGB::Red),
     plot::Box(0..1, 1..2, 0..1, Filled = TRUE,
               FillColor = RGB::Red),
plot::Box(0..1, 2..3, 0..1, Filled = TRUE,
               FillColor = RGB::Red),
     plot::Box(2..3, 1..2, 0..1, Filled = TRUE,
               FillColor = RGB::Red),
plot::Box(1..2, 2..3, 0..1,Filled = TRUE,
               FillColor = RGB::Red),
     plot::Box(2..3, 2..3, 0..1, Filled = TRUE,
               FillColor = RGB::RED,),
     Axes = None, Scaling = Constrained)

しかし、ここでは、各サーフェスに個別の色を与えることができません。使ってみFillColorDirection = [0, 0, 1])たけどうまくいかない

plot:Box を使用する場合、面ごとに別々の色を指定することは可能ですか?それとも、これを行うより良い方法はありますか?

4

1 に答える 1