【摘要】三階魔方是最常見的魔方形式,本文是想在課堂教學(xué)過程中結(jié)合魔方這個有趣的實物,給學(xué)生建立空間的思維感,從而引出線性代數(shù)中三維空間圖形繞坐標(biāo)軸的任意角度旋轉(zhuǎn)的變換矩陣這個知識點,并引導(dǎo)學(xué)生用MATLAB軟件實現(xiàn)空間圖形的任意角度的旋轉(zhuǎn)。
【關(guān)鍵詞】三階魔方 三維空間 旋轉(zhuǎn)變換矩陣 MATLAB
【Abtstract】The Rubik?蒺s Cube is the most common form of magic cube. The article wants to build a spatial sense of mind for students in class by combining the magic cube?蒺s interesting object, thus this paper introduces the transformation matrix of 3D spatial graphics around the coordinate axis in linear algebra, and uses MATLAB to achieve the rotation of spatial graphics.
【Keywords】The Rubik?蒺s Cube; three-dimensional space; rotation transformation matrix; MATLAB
【中圖分類號】G64 【文獻(xiàn)標(biāo)識碼】A 【文章編號】2095-3089(2018)27-0145-02
1.引言
三階魔方就是我們最常玩的魔方,它是匈牙利布達(dá)佩斯建筑學(xué)院厄爾諾·魯比克教授在1974年發(fā)明的。他發(fā)明魔方的初衷是希望能幫助學(xué)生增強(qiáng)空間思維感。直到魔方在手時,他將魔方轉(zhuǎn)了幾下后,才發(fā)現(xiàn)怎么把混亂的顏色方塊復(fù)原?確是個有趣而且困難的問題。Rubik就決心大量生產(chǎn)這種玩具,魔方發(fā)明后不久就風(fēng)靡世界。
本文想借助這個玩具的旋轉(zhuǎn)引出空間圖形的旋轉(zhuǎn)問題,我們將魔方放入三維空間坐標(biāo)系中,賦予它數(shù)學(xué)方面的內(nèi)涵。建立空間坐標(biāo)系后,三階魔方的玩法實際上就是魔方的層按照X軸,Y軸和Z軸旋轉(zhuǎn)90度,180度或者270度。
1.1三階魔方繞x軸旋轉(zhuǎn)特定角度
假設(shè)魔方上的點C(x,y,z)繞x軸正方向旋轉(zhuǎn)90度轉(zhuǎn)到點H(x1,y1,z1),則矩陣變換關(guān)系是:
x1y1z1=x-zy=1 0 00 0 -10 1 0xyz
1.2三階魔方繞y軸旋轉(zhuǎn)
假設(shè)魔方上的點C(x,y,z)繞x軸正方向旋轉(zhuǎn)90度轉(zhuǎn)到點F(x1,y1,z1),則矩陣變換關(guān)系是:
x1y1z1=zy-x=0 0 10 1 0-1 0 0xyz
1.3 三階魔方繞z軸旋轉(zhuǎn)
假設(shè)魔方上的點C(x,y,z)繞z軸正方向旋轉(zhuǎn)90度轉(zhuǎn)到點D(x1,y1,z1),則矩陣變換關(guān)系是:
x1y1z1=-yxz=0 -1 01 0 00 0 1xyz
2.三維空間圖形繞坐標(biāo)軸的旋轉(zhuǎn)任意角度
三階魔方只是研究的幾種特殊角度情況下的旋轉(zhuǎn),若以坐標(biāo)系的三個坐標(biāo)軸x,y,z分別作為旋轉(zhuǎn)軸,則點實際上只在垂直坐標(biāo)軸的平面上作二維旋轉(zhuǎn)。此時用二維旋轉(zhuǎn)公式就可以直接推出三維旋轉(zhuǎn)變換矩陣。規(guī)定在右手坐標(biāo)系中,物體旋轉(zhuǎn)的正方向是右手螺旋方向,即從該軸正半軸向原點看是逆時針方向。
2.1任意點繞x軸旋轉(zhuǎn)的變換關(guān)系
y'=ycosθ-zsinθz'=ysinθ+zcosθx'=x得矩陣關(guān)系
x'y'z'=1 0 00 cosθ -sinθ0 sinθ cosθxyz
2.2 任意點繞y軸旋轉(zhuǎn)的變換關(guān)系
z'=zcosθ-xsinθx'=zsinθ+xcosθy'=y得矩陣關(guān)系
x'y'z'=cosθ 0 sinθ 0 1 0-sinθ 0 cosθxyz
2.3 任意點繞z軸旋轉(zhuǎn)的變換關(guān)系
x'=xcosθ-ysinθy'=xsinθ+ycosθz'=z得矩陣關(guān)系
x'y'z'=cosθ -sinθ 0sinθ cosθ 0 0 0 1 xyz
3.用MATLAB實現(xiàn)三維立方體的任意角度旋轉(zhuǎn)
x=[1 -1 -1 1 -1 -1;-1 -1 1 1 -1 -1;-1 -1 1 1 1 1;1 -1 -1 1 1 1];
y=[1 1 -1 -1 -1 -1;1 -1 -1 1 1 1;1 -1 -1 1 1 1;1 1 -1 -1 -1 -1];
z=[1 1 1 1 1 -1;1 1 1 1 1 -1;-1 -1 -1 -1 1 -1;-1 -1 -1 -1 1 -1];
h1=fill3(x,y,z,'y') %三維立方體圖形
axis equal
hold on
xdir= [1 0 0]
rotate(h1,xdir,30) %三維立方體繞x軸旋轉(zhuǎn)30度角
4.結(jié)論
本文通過三階魔方的旋轉(zhuǎn)引入線性代數(shù)的矩陣變換理論,實現(xiàn)了計算機(jī)圖像的平移,旋轉(zhuǎn)和復(fù)合變換,并用matlab 程序?qū)崿F(xiàn)。
參考文獻(xiàn):
[1]David C. Lay ,劉深泉. 線性代數(shù)及其應(yīng)用原書[M].第3版.北京:機(jī)械工業(yè)出版社,2005,8.
[2]Rafael C.Gonzalez, 阮秋琦.數(shù)字圖像處理的MATLAB實現(xiàn)[M].第2版. 北京: 清華大學(xué)出版社,2013.
[3]李世春.魔方里的科學(xué)和文化[M].北京:高等教育出版社,2015.
[4]杜麗美,李艷玲,侯慧玲.矩陣?yán)碚撛趫D形變換中的應(yīng)用[J].電子測試,2016,9:63-64.
作者簡介:
劉浩 (1981年-),女,威海人,青島職業(yè)技術(shù)學(xué)院講師,研究生,研究方向為應(yīng)用數(shù)學(xué)。