S4E13 是圓還是方?
今天要介紹的這個是 2016 錯覺藝術(shù)大獎的得獎作品? Ambiguous Cylinder Illusion 。

圖片來源于網(wǎng)絡(luò)
這樣的錯覺是如何產(chǎn)生的呢?我們看一下實際上它是什么樣子的。

圖片來源于網(wǎng)絡(luò)
其實,它就是利用了不同角度觀察的錯覺。那么我們也可以使用GGB來作出這樣的視覺效果。首先來觀察一下效果圖吧~

在效果圖中,你看到了幾個圖形,它們之間有什么位置上的關(guān)系嗎?答案見①
那你可以想到怎么實現(xiàn)這個效果嗎?肯定要有一個圓形和一個方形,并且它們所在的平面互相垂直,其次就是把它們疊加起來。
你可以先動手試試看,卡住了再來看講解吧!
你將要收獲
1. 在三維空間繪制平面圖形
2. 疊加兩個空間圖形
1??繪制空間中的圓
A. 繪制xoy平面內(nèi)的圓
首先,我們可以利用之前學(xué)的知識,繪制一個在xoy平面內(nèi)的圓。請查閱S4E12的教程,S4E12 ?畫出任何你想要的數(shù)學(xué)圖象,快來一起學(xué)習吧~效果圖如下:

B. 將圓變換一個平面
我們建立兩個向量來表示新的平面。
先找到空間中的兩個點,C=(1,0,1),Y=(0,1,0)
向量的指令為:
Vector(起點,終點)【若起點省略不寫,默認為原點】
即向量為OC=((0,0,0),C),OY=((0,0,0),Y)
如何書寫新的平面內(nèi)的圓呢?效果圖如下,答案見②

我們看到這時候不是一個圓,你可以怎么修正呢?答案見③
2?繪制空間中的正方形
A.同上,繪制xoy平面內(nèi)的正方形
??? a. xoy平面內(nèi),繪制直線。

b. 第四象限,折回來。

c. 變成和圓一樣的縱坐標,即(1-|sin(t)|,sin(t),0,t,sT,eT)

? ? d. 畫出關(guān)于y軸對應(yīng)的部分
?????????橫坐標乘以sgn(Pi/2-t)【sgn 可以根據(jù)括號里面的正負來輸出+1或者是-1;比如,括號內(nèi)的數(shù)大于零,則輸出+1;反之,輸出-1】

B. 將正方形變換到和圓垂直的一個平面
????方形的橫坐標為Sx(t)=sgn((π)/(2)-t) (1- abs(sin(t)))
????縱坐標為Sy(t)=sin(t)
? 與OC垂直的向量為(-1,0,1)
你可以寫出新的平面內(nèi)的正方形的指令嗎?答案見④,效果如下:

3?合并空間中的圓和正方形
最后我們把兩個圖形的方程式加起來,即可得合并后的圖象。
cM=Curve(cos(t)*C+sin(t)*Y+Sx(t)*S,t,sT,eT)

想一想,為什么會出現(xiàn)這樣結(jié)果呢?
如果把圓和正方形分別畫在xoy平面和xoz平面內(nèi),會有同樣的效果嘛?你覺得能夠決定最后兩個圖形能夠疊加的關(guān)鍵因素是什么?
4?學(xué)以致用
接下來,你可以把正方形和心形也畫在這樣的平面內(nèi),從而產(chǎn)生錯覺。畫心形,可以參考上節(jié)課的教程:S4E12 ?畫出任何你想要的數(shù)學(xué)圖象,快來一起學(xué)習吧~期待你的結(jié)果~~

答案區(qū)
①?方形和圓形是在兩個相互垂直的平面內(nèi),當我們垂直于一個方向去看的時候,看到圓形,則方形變?yōu)橐粭l線段;反之,圓形變?yōu)橐粭l線段,可以看到一個方形。? ?
②?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