日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

css3魔方3乘3每层旋转_MATLAB画图技巧:让魔方转起来!

發布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 css3魔方3乘3每层旋转_MATLAB画图技巧:让魔方转起来! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要用來炫技......涉及圖形對象的平移與旋轉。

如果只是畫一個靜態的魔方,必然是很簡單的,6個不同顏色的面,中間加上若干條線就OK了。但我想實現的是一個真正的能夠轉的魔方,就要從最基礎的小立方體開始搭起來了。

1.搭建一個基本立方體

主要思路是,用fill3函數畫一個面,然后用transform對象將其變換到相應的位置。6個不同顏色的面,就構成了一個小立方體。

%% 在指定的父級對象(Parent)下創建一個立方體 % Parent可以是Axes、Group或Transform對象 function Parent = makeCube(Parent) x = [0 0 1 1]; y = [0 1 1 0]; z = [0 0 0 0]; c = colormap(jet(6)); h = gobjects(1,6); t = gobjects(1,6); for ii = 1:6t(ii) = hgtransform('Parent',Parent);h(ii) = fill3(x,y,z,c(ii,:),'Parent',t(ii),'LineWidth',2); end t(2).Matrix = makehgtform('xrotate',pi/2); t(3).Matrix = makehgtform('yrotate',-pi/2); t(4).Matrix = makehgtform('translate',[0,1,0],'xrotate',-pi/2,'translate',[0,-1,0]); t(5).Matrix = makehgtform('translate',[1,0,0],'yrotate',pi/2,'translate',[-1,0,0]); t(6).Matrix = makehgtform('translate',[0,0,1]); end

大致介紹下涉及的函數。

  • colormap: 從預定義的顏色空間選擇若干個顏色。
  • gobjects: 創建一個圖形對象數組,用于預定義。
  • hgtransform:新建Transform對象。
  • makehgtform:設置Transform對象的變換矩陣。

2.利用基本立方體構建一個N階魔方

這個相對簡單些,for循環調用上面的小立方體生成函數,用Transform對象將其平移到相應的位置就可以了。注意讓x,y,z軸位于面的中心位置。

function t = magicCube(N) h = gobjects(N,N,N); t = gobjects(N,N,N); for x = 1:Nfor y = 1:Nfor z = 1:Nt(x,y,z) = hgtransform('Parent',gca);h(x,y,z) = makeCube(t(x,y,z));t(x,y,z).Matrix = makehgtform('translate',[x-1-N/2,y-1-N/2,z-1-N/2]);endend end end

調用一下,看看3階魔方的效果。

N = 3; figure() ax = gca; ax.Box = 'off'; axis(ax,'equal','off'); ax.Projection = 'perspective'; t = magicCube(N);

注意: 當魔方的階數較大(N>9)時,生成魔方的函數magicCube會明顯變慢,解決方法是內部的立方體可以不用畫,只需要外部的就可以了。具體的代碼就不寫了。

本文的題圖為一個21階魔方,(目前量產的最高階魔方為17階,所以,你可以用MATLAB玩到更高階的魔方)

3.讓魔方轉起來!

X軸方向旋轉:

%% X軸方向第idx層逆時針旋轉90度. function t = rotateX(t,idx) N = length(t); Rx = makehgtform('xrotate',pi/2);%,'translate',[0,0,-1]); for y = 1:Nfor z = 1:Nt(idx,y,z).Matrix = Rx*t(idx,y,z).Matrix;end end t(idx,:,:) = rot90(squeeze(t(idx,:,:))); end

Y軸方向旋轉:

%% Y軸方向第idx層逆時針旋轉90度. function t = rotateY(t,idx) N = length(t); Ry = makehgtform('yrotate',pi/2); for x = 1:Nfor z = 1:Nt(x,idx,z).Matrix = Ry*t(x,idx,z).Matrix;end end t(:,idx,:) = rot90(squeeze(t(:,idx,:)),3); end

Z軸方向旋轉:

%% Z軸方向第idx層逆時針旋轉90度 function t = rotateZ(t,idx) N = length(t); Rz = makehgtform('zrotate',pi/2); for x = 1:Nfor y = 1:Nt(x,y,idx).Matrix = Rz*t(x,y,idx).Matrix;end7 end t(:,:,idx) = rot90(squeeze(t(:,:,idx))); end

現在,可以開始玩魔方了!!!

當然,由于沒有做圖形界面,只能以寫代碼的形式來玩。函數都在上面寫好了,具體怎么調用的我就不寫了。

下面是我用上述程序做的一些魔方圖案。

動圖,9階魔方的打亂與還原

經典的七階6面心形圖案。

最后是專欄目錄:

易夕:MATLAB Tricks 專欄目錄?zhuanlan.zhihu.com

總結

以上是生活随笔為你收集整理的css3魔方3乘3每层旋转_MATLAB画图技巧:让魔方转起来!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人精品视频在线播放 | 不卡av片 | 一区国产在线 | 一本到在线 | 在线亚洲+欧美+日本专区 | 精品伦精品一区二区三区视频 | 久久一久久 | 操干网| 日本少妇在线观看 | 2020国产精品 | 视频在线观看一区二区 | 欧美日韩国产二区 | 国产精品123区 | 成人区人妻精品一区 | 狼人香蕉| 嫩草影院永久入口 | www色日本 | 成人动漫在线观看 | 日韩一级片在线 | av在线资源观看 | 久久理论片 | 丰满的人妻hd高清日本 | 日韩在线观看视频免费 | 国产精品91一区二区 | 欧美日韩亚洲二区 | 人人操在线播放 | 中文字幕在线观看一区二区三区 | 欧美黄色录像片 | 欧美tv | 久久噜噜色综合一区二区 | 国产精品15p | 天堂av在线电影 | 美日韩一区二区 | 亚洲第一区在线观看 | 欧美成人亚洲 | 久久久穴 | 黄色a网站 | 欧美极品少妇xxxxⅹ裸体艺术 | 亚洲 欧美 日韩 综合 | 国产精品久久久久久三级 | 亚洲黄网在线观看 | 色综合五月天 | 性做久久久久久免费观看 | 精品无码久久久久久久久果冻 | 天天视频天天爽 | 日韩六九视频 | 三级黄色片免费观看 | 99精品成人 | av午夜精品 | 国产精品不卡一区 | 97久久国产| 欧美精品久久久久久久多人混战 | 一区二区三区精品国产 | 乱lun合集男男高h | 国产粉嫩一区二区三区 | 日本伦理一区 | 五月婷婷综合色 | 中文在线天堂网 | 一级黄色片在线看 | www.四虎.com | 国产亚洲欧美精品久久久久久 | 国产女人在线视频 | 亚洲免费视频一区二区 | 日韩aa| 一卡二卡三卡在线视频 | 97久久久久久 | 成人做爰69片免费 | 老司机精品福利导航 | 精品动漫一区二区 | 日av中文字幕 | www.三级 | 国产精品免费大片 | 一区二区三区在线免费观看视频 | 天天看夜夜操 | 天堂av2018 | 黑丝扣逼| 国产伦精品一区二区免费 | 91片黄在线观看 | 91丨国产丨白丝 | 国产91成人 | 精品久久久久久久久久久国产字幕 | 天天干天天色综合 | 91免费看国产 | av日韩精品 | 免费在线观看一区 | 性激烈视频在线观看 | 欧美激情一区二区三级高清视频 | 欧美一区二区公司 | 色乱码一区二区三区网站 | 激情欧美一区二区三区 | 欧美日韩一卡二卡三卡 | 亚洲成人免费影院 | 日本美女黄色大片 | 日本老年老熟无码 | 女女h百合无遮羞羞漫画软件 | 国产精品二区一区二区aⅴ 一卡二卡三卡在线观看 | 国产破处av| 欧美射| 青青草视频观看 |