欢迎光临散文网 会员登陆 & 注册

S4E13 是圆还是方?

2022-03-02 13:32 作者:学用数学  | 我要投稿

今天要介绍的这个是 2016 错觉艺术大奖的得奖作品  Ambiguous Cylinder Illusion 。

图片来源于网络

这样的错觉是如何产生的呢?我们看一下实际上它是什么样子的。

图片来源于网络

其实,它就是利用了不同角度观察的错觉。那么我们也可以使用GGB来作出这样的视觉效果。首先来观察一下效果图吧~


在效果图中,你看到了几个图形,它们之间有什么位置上的关系吗?答案见①

那你可以想到怎么实现这个效果吗?肯定要有一个圆形和一个方形,并且它们所在的平面互相垂直,其次就是把它们叠加起来。

你可以先动手试试看,卡住了再来看讲解吧!

你将要收获

1. 在三维空间绘制平面图形

2. 叠加两个空间图形


1  绘制空间中的圆

A. 绘制xoy平面内的圆

首先,我们可以利用之前学的知识,绘制一个在xoy平面内的圆。请查阅S4E12的教程,S4E12  画出任何你想要的数学图象,快来一起学习吧~效果图如下:


B. 将圆变换一个平面

我们建立两个向量来表示新的平面。

先找到空间中的两个点,C=(1,0,1),Y=(0,1,0)

向量的指令为:

Vector(起点,终点)【若起点省略不写,默认为原点】

即向量为OC=((0,0,0),C),OY=((0,0,0),Y)

如何书写新的平面内的圆呢?效果图如下,答案见②

我们看到这时候不是一个圆,你可以怎么修正呢?答案见③


绘制空间中的正方形

A.同上,绘制xoy平面内的正方形

    a. xoy平面内,绘制直线。

b. 第四象限,折回来。

c. 变成和圆一样的纵坐标,即(1-|sin(t)|,sin(t),0,t,sT,eT)


    d. 画出关于y轴对应的部分

         横坐标乘以sgn(Pi/2-t)【sgn 可以根据括号里面的正负来输出+1或者是-1;比如,括号内的数大于零,则输出+1;反之,输出-1】


B. 将正方形变换到和圆垂直的一个平面

    方形的横坐标为Sx(t)=sgn((π)/(2)-t) (1- abs(sin(t)))

    纵坐标为Sy(t)=sin(t)

  与OC垂直的向量为(-1,0,1)

你可以写出新的平面内的正方形的指令吗?答案见④,效果如下:


合并空间中的圆和正方形

最后我们把两个图形的方程式加起来,即可得合并后的图象。

cM=Curve(cos(t)*C+sin(t)*Y+Sx(t)*S,t,sT,eT)

想一想,为什么会出现这样结果呢?

如果把圆和正方形分别画在xoy平面和xoz平面内,会有同样的效果嘛?你觉得能够决定最后两个图形能够叠加的关键因素是什么?

学以致用

接下来,你可以把正方形和心形也画在这样的平面内,从而产生错觉。画心形,可以参考上节课的教程:S4E12  画出任何你想要的数学图象,快来一起学习吧~期待你的结果~~


答案区

① 方形和圆形是在两个相互垂直的平面内,当我们垂直于一个方向去看的时候,看到圆形,则方形变为一条线段;反之,圆形变为一条线段,可以看到一个方形。   

② cC2=Curve(cos(t)*C+sin(t)*Y,t,sT,eT)

③因为OC和OY的单位长度不一样,我们只需要把Y改为(0,1.414,0)即可。

④ cS2=Curve(Sx*S+Sy*Y,t,sT,eT)

参考资料

【Bili】https://www.bilibili.com/video/av77773250?p=3

【GGB】https://www.geogebra.org/classic/dgakmyrw



S4E13 是圆还是方?的评论 (共 条)

分享到微博请遵守国家法律