荷兰平面艺术大师Maurits Cornelis Escher被视为二十世纪艺术繁盛时代的奇葩,其独树一帜且无法归类的美感风格,来自于艺术家善于发掘日常万物的数学规律,往往蕴藏着无穷尽的美学诗意。Escher毕生创作488件版画作品当中为人所津津乐道的是其运用了数学逻辑、错觉透视和视觉心理,结合重复的人物造型与不可能之建筑体,打造出兼具游戏式和科学感的谜样图像,作品冲击着观者的视觉感官,并挑战着世人固有的逻辑思维。
下面是用Mathematica制作的Maurits Cornelis Escher的不可能方块的可能模型:
其制作过程如下:
v = PolyhedronData["Cube", "VertexCoordinates"];
i = PolyhedronData["Cube", "EdgeIndices"];
Graphics3D[{Orange, Specularity[White, 20], GraphicsComplex[2 v, Tube[i, .1]]}, Boxed -> False]
PolyhedronData["Cube", "EdgeIndices"]
Graphics3D[ Tube[BSplineCurve[{{1, 1, -1}, {2, 2, 1}, {3, 3, -1}, {3, 4, 1}}]]]
pts = {{-1, -1}, {2.5, -2}, {2.5, -1}, {-1, 1}};
Graphics[{ {PointSize[.1], Red, Point[{1, -1}]}, {BSplineCurve[pts], Green, Line[pts], Red, Point[pts]}}, Frame -> True]
pts3D = Transpose[Transpose[pts]~Join~{ConstantArray[-1, 4]}];
Graphics3D[{{BSplineCurve[pts3D], Green, Line[pts3D], Red, Point[pts3D]}, {Orange, Specularity[White, 20], GraphicsComplex[2 v, Tube[i, .1]]}},Boxed -> False, SphericalRegion -> True]
Manipulate[ Graphics3D[ {{Thick, Rotate[BSplineCurve[pts3D], a Degree, {0, 1, 0}, {-1, -1, -1}]}, {Orange, Specularity[White, 20], GraphicsComplex[2 v, Tube[i, .1]]}}, Boxed -> False, SphericalRegion -> True, PlotRange -> 2] , {{a, -65, "angle"}, 0, -90}]
Graphics3D[ {{Orange, Specularity[White, 20], Rotate[Tube[BSplineCurve[pts3D], .09], -65 Degree, {0, 1, 0}, {-1, -1, -1}]},{Orange, Specularity[White, 20], GraphicsComplex[2 v, Tube[Delete[i, 2], .09]]}},Boxed -> False, SphericalRegion -> True]
Graphics3D[{Red, CapForm["Round"],Tube[BSplineCurve[{{0, 0, 0}, {1, 1, 0}, {1.2, 2, 0}, {.6, 1.8, 0}, {0, 1.3, 0}, {-.6, 1.8, 0}, {-1.2, 2, 0}, {-1, 1, 0}, {0, 0,0}}], {.1, .1, .1, .1, .3, .1, .1, .1, .1}]}]
Graphics3D[{CapForm[None], Tube[BSplineCurve[{{0, 0, -1}, {0, 0, -.5}, {0, 0, 0}, {0, 0, 1}, {0, 0, 15}, {0, 0, 20}, {0, 0, 25}, {0, 0, 32}, {0, 0,
35}}], {6, 6.5, 6, 3.2, 12, 4, 2, 2.4, 3.5}]}]
Graphics3D[{{Rotate[Tube[BSplineCurve[pts3D],{.09,.06,.06,.09}],-65 Degree,{0,1,0},{-1,-1,-1}]},{GraphicsComplex[2v,Tube[Delete[i,2],.09]]}},Boxed->False,SphericalRegion->True,Lighting->{{"Directional",Orange,{{5,5,4},{5,-10,0}}},{"Directional",Orange,{{5,5,4},{5,5,0}}},{"Directional",Orange,{{5,5,4},{5,50,0}}}}]
Manipulate[ With[{v = RotationTransform[\[Theta], {0, .3, 1}][3 {1, 0, 1}]}, Show[\!\(\*Graphics3DBox[{GeometricTransformation3DBox[TubeBSplineCurveBox[{{-1, -1, -1}, {2.5, -2, -1}, { 2.5, -1, -1}, {-1, 1, -1}}, {0.09, 0.06, 0.06, 0.09}], NCache[{{{Sin[25 Degree], 0, -Cos[25 Degree]}, {0, 1, 0}, {Cos[25 Degree], 0, Sin[25 Degree]}}, {-1 - Cos[ 25 Degree] + Sin[25 Degree], 0, -1 + Cos[25 Degree] + Sin[25 Degree]}}, {{{ 0.42261826174069944`, 0, -0.9063077870366499}, {0, 1, 0}, { 0.9063077870366499, 0, 0.42261826174069944`}}, {-1.4836895252959506`, 0, 0.3289260487773494}}]], GraphicsComplex3DBox[{{-1, -1, -1}, {-1, -1, 1}, {-1, 1, -1}, {-1, 1, 1}, {1, -1, -1}, {1, -1, 1}, {1, 1, -1}, {1,
1, 1}}, TubeBox[{{1, 2}, {1, 5}, {2, 4}, {2, 6}, {3, 4}, {3, 7}, {4, 8}, {5, 6}, {5, 7}, {6, 8}, {7, 8}}, 0.09]]}Boxed->False,ImageSize->{42.39453125, 43.},Lighting->{{"Directional", RGBColor[1, 0.5, 0], {{5, 5, 4}, {5, -10, 0}}}, {"Directional", RGBColor[1, 0.5, 0], {{5, 5, 4}, {5, 5, 0}}}, {"Directional", RGBColor[1, 0.5, 0], {{5, 5, 4}, {5, 50, 0}}}},SphericalRegion->True,ViewAngle->0.28174455273387694`,ViewCenter->{{0.5, 0.5, 0.5}, {0.5130571030640669, 0.5967640146239556}},ViewPoint->{1.2258872477681493`, -1.4586015153632887`, 2.7963694453951082`},
ViewVertical->{0.10890333155597426`, -1.0300307945956193`, 0.20247121522496017`}]\), ImageSize -> 500, ViewPoint -> v]], {{\[Theta], 5.515}, 0, 2 Pi, Appearance -> "Open"}]
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有