错觉艺术的巅峰,错觉图形大师M.C. Escher的不可能方块的可能模型

荷兰平面艺术大师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"}]

原文发布于微信公众号 - WOLFRAM(WolframChina)

原文发表时间:2016-07-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏算法修养

HDU 1243 反恐训练营(最长公共序列)

反恐训练营 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav...

2797
来自专栏数据结构与算法

Codeforces Round #491 (Div. 2)部分题解

1124
来自专栏GreenLeaves

COALESCE操作符

一、应用场景 1、购买的零件和本地生产的零件都是零件,尽管多重的实体类型在数据存储上略有不同,但是它们有太多的相同之处,因此通常使用一个表格而不是两个。 所以这...

20010
来自专栏文武兼修ing——机器学习与IC设计

关于空难数据集的探索分析导入数据集伤亡分析机型处理时间分析

写在前面: 这是我见过的最严肃的数据集,几乎每一行数据背后都是生命和鲜血的代价。这次探索分析并不妄图说明什么,仅仅是对数据处理能力的锻炼。因此本次的探索分析...

4425
来自专栏小巫技术博客

智力题收集分享1

1083
来自专栏Crossin的编程教室

【每周一坑】黑色星期五

今天的题目跟西方的传说有关 ? “黑色星期五”这个词对于爱购物的人来说并不陌生,它是美国人民的购物狂欢日,堪比中国的双十一、双十二。 但其实“黑色星期五”在西方...

3037
来自专栏WOLFRAM

向日葵中的数学之美

2623
来自专栏HansBug's Lab

3384/1750: [Usaco2004 Nov]Apple Catching 接苹果

3384/1750: [Usaco2004 Nov]Apple Catching 接苹果 Time Limit: 1 Sec  Memory Limit: 1...

27111
来自专栏牛客网

宜信大数据中心java研发岗面经

在我小时候,我极力装得像个大人,当我已经不再是小孩的时候,我又希望像个孩子。——列夫·托尔斯泰

1512
来自专栏数据结构与算法

3315 时空跳跃者的魔法

3315 时空跳跃者的魔法 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 白银 Silver 题目描述 Description ...

40110

扫码关注云+社区

领取腾讯云代金券