Graphics3D: Cube の試作(1)

Graphics3D と Polygon を使って Cube の試作してみた。色の使い方が 2D とは勝手が違うことを実感した。

(*  fornt  *)
front = {{0, 0, 0}, {1, 0, 0}, {1, 0, 1}, {0, 0, 1}};
ffc = # + {0, 0, 0} & /@ front;
fF = {Glow[Green], Green, Polygon[ffc]};
(*  up  *)
up = {{0, 0, 1}, {1, 0, 1}, {1, 1, 1}, {0, 1, 1}};
fuc = # + {0, 0, 0} & /@ up;
fUp = {Glow[Orange], Darker[Orange, 0.7], Polygon[fuc]};
(*  left  *)
left = {{0, 0, 0}, {0, 1, 0}, {0, 1, 1}, {0, 0, 1}};
flc = # + {0, 0, 0} & /@ left;
fL = {Glow[Blue], Lighter[Blue, 0.6], Polygon[flc]}; 
(*  right  *)
right = {{1, 0, 0}, {1, 1, 0}, {1, 1, 1}, {1, 0, 1}};
frc = # + {0, 0, 0} & /@ right;
fR = {Glow[White], White, Polygon[frc]};
(*  back  *)
back = {{0, 1, 0}, {1, 1, 0}, {1, 1, 1}, {0, 1, 1}};
fbc = # + {0, 0, 0} & /@ back;
fB = {Glow[Yellow], Yellow, Polygon[fbc]};
(*  down  *)
down = {{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}};
fdc = # + {0, 0, 0} & /@ down;
fD = {Glow[Red], Red, Polygon[fdc]};
(*     *)
edge = EdgeForm[Directive[Thickness[0.010], Darker[Blue, 0.5]]];
(*   *)
Graphics3D[{edge, Opacity[0.9], fF, fUp, fL, fR, fB, fD},
 AxesLabel -> {"x", "y", "z"},
 Lighting -> {{"Directional", White, {{1, -1, 1}, {0, 0, 0}}}}, 
 PlotRangePadding -> 0.2, Axes -> False, Boxed -> False,
 ViewPoint -> {1.375, -2.896, 1.080}, 
 ViewVertical -> {0.13920, -0.26893, 0.9530}, 
 ImageSize -> 250]

主目次へ