欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4862|回復: 3
打印 上一主題 下一主題
收起左側

MATLAB對三階魔方建模并進行旋轉操作 附源程序

[復制鏈接]
跳轉到指定樓層
樓主
這是我在畢設期間做的關于魔方機械手的一部分東西,屬于matlab對于顏色識別部分,這里是對魔方驚醒了建模。大家在matlab里就可以實現。希望對大家有幫助

MATLAB源程序:
  1. clc;clear;
  2. close all;
  3. x=[-0.5 +0.5 +0.5 -0.5 -0.5 -0.5;
  4.     +0.5 +0.5 -0.5 -0.5 +0.5 +0.5;
  5.     +0.5 +0.5 -0.5 -0.5 +0.5 +0.5;
  6.     -0.5 +0.5 +0.5 -0.5 -0.5 -0.5];
  7. y=[-0.5 -0.5 +0.5 -0.5 -0.5 -0.5;
  8.     -0.5 +0.5 +0.5 +0.5 -0.5 -0.5;
  9.     -0.5 +0.5 +0.5 +0.5 +0.5 +0.5;
  10.     -0.5 -0.5 +0.5 -0.5 +0.5 +0.5];
  11. z=[0 0 0 0 0 1;
  12.     0 0 0 0 0 1;
  13.     1 1 1 1 0 1;
  14.     1 1 1 1 0 1];
  15. Orgcell1=[1 0 1 0 1 1];
  16. Orgcell2=[0 0 0.46 1 1 1];
  17. Orgcell3=[0 1 0 0 0 1];
  18. Org1(:,1)=Orgcell1;
  19. Org2(:,1)=Orgcell2;
  20. Org3(:,1)=Orgcell3;
  21. x1=ones(size(x))+x;
  22. y1=ones(size(x))+y;
  23. x2=-1*ones(size(x))+x;
  24. y2=-1*ones(size(x))+y;
  25. z1=ones(size(z))+z;
  26. z2=-1*ones(size(z))+z;
  27. Org(1,:,:)=[Org1 Org2 Org3 ];
  28. Org(2,:,:)=[Org1 Org2 Org3 ];
  29. Org(3,:,:)=[Org1 Org2 Org3 ];
  30. Org(4,:,:)=[Org1 Org2 Org3 ];

  31. h.h0=patch(x2,y1,z, Org);
  32. axis equal tight  
  33. axis([-4 4 -4 4 -4 4]);
  34. hold on;
  35. h.h1=patch(x,y1,z, Org);
  36. h.h2=patch(x1,y1,z, Org);
  37. h.h3=patch(x2,y,z, Org);
  38. h.h4=patch(x,y,z, Org);
  39. h.h5=patch(x1,y,z, Org);
  40. h.h6=patch(x2,y2,z, Org);
  41. h.h7=patch(x,y2,z, Org);
  42. h.h8=patch(x1,y2,z, Org);


  43. h.h10=patch(x2,y1,z1, Org);
  44. h.h11=patch(x,y1,z1, Org);
  45. h.h12=patch(x1,y1,z1, Org);
  46. h.h13=patch(x2,y,z1, Org);
  47. h.h14=patch(x,y,z1, Org);
  48. h.h15=patch(x1,y,z1, Org);
  49. h.h16=patch(x2,y2,z1, Org);
  50. h.h17=patch(x,y2,z1, Org);
  51. h.h18=patch(x1,y2,z1, Org);


  52. h.h20=patch(x2,y1,z2, Org);
  53. h.h21=patch(x,y1,z2, Org);
  54. h.h22=patch(x1,y1,z2, Org);
  55. h.h23=patch(x2,y,z2, Org);
  56. h.h24=patch(x,y,z2, Org);
  57. h.h25=patch(x1,y,z2, Org);
  58. h.h26=patch(x2,y2,z2, Org);
  59. h.h27=patch(x,y2,z2, Org);
  60. h.h28=patch(x1,y2,z2, Org);
  61. hold off;
  62. title('Rubic Cube');
  63. xlabel('Variable X');
  64. ylabel('Variable Y');
  65. zlabel('Variable Z');
  66. grid on;
  67. %view(0,0);   
  68.     origin=[0 0 0.5];
  69.     direct1=[0 1 0];      
  70.     direct2=[0 0 1];      
  71.     direct3=[0 0 1];      
  72.     direct4=[1 0 0];      
  73.     direct5=[1 0 0];      
  74.     direct6=[0 1 0];
  75.     direct=[direct1;direct2;direct3;direct4;direct5;direct6];
  76.     theta1=45;
  77.     theta2=45;
  78.     theta3=-45;
  79.     theta4=-45;
  80.     theta5=45;
  81.     theta6=-45;
  82.     theta=2*[theta1,theta2,theta3,theta4,theta5,theta6];
  83.     H.H1=[h.h6  h.h7  h.h8;         %H1為紅色面         
  84.         h.h16 h.h17 h.h18;
  85.         h.h26 h.h27 h.h28];
  86.     H.H2=[h.h20 h.h21  h.h22;       %H2為黃色面
  87.         h.h23 h.h24  h.h25;
  88.         h.h26 h.h27  h.h28];
  89.     H.H3=[h.h10 h.h11  h.h12;       %H3為白色面
  90.         h.h13 h.h14  h.h15;
  91.         h.h16 h.h17  h.h18];
  92.     H.H4=[h.h2  h.h5   h.h8;       %H4為藍色面
  93.         h.h12 h.h15  h.h18;
  94.         h.h22 h.h25  h.h28];
  95.     H.H5=[h.h0  h.h3   h.h6;       %H5為綠色面
  96.         h.h10 h.h13  h.h16;
  97.         h.h20 h.h23  h.h26];
  98.     H.H6=[h.h0  h.h1   h.h2;       %H6為橙色面
  99.         h.h10 h.h11  h.h12;
  100.         h.h20 h.h21  h.h22];
  101. for i=0:23
  102.     [H,h]=CubicRotate(H,h,direct,theta,origin,mod(i,6)+1);

  103. end



  104. function [H,h]=CubicRotate(H,h,direct,theta,origin,surface)
  105. switch surface
  106.     case 1
  107.         Handle=H.H1;
  108.     case 2
  109.         Handle=H.H2;
  110.     case 3
  111.         Handle=H.H3;
  112.     case 4
  113.         Handle=H.H4;
  114.     case 5
  115.         Handle=H.H5;
  116.     case 6
  117.         Handle=H.H6;
  118. end


  119. for i=1:10
  120.     rotate(Handle,direct(surface,:),theta(surface)/10,origin);
  121.     pause(0.01);
  122. end
  123. [H,h]=RotateConvert(H,h,surface);
復制代碼

全部資料51hei下載地址:
MATLAB對三階魔方建模并進行旋轉操作.zip (1.13 KB, 下載次數: 47)



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:807820 發表于 2020-7-25 10:07 | 只看該作者
好神奇
回復

使用道具 舉報

板凳
ID:896777 發表于 2021-3-26 02:36 | 只看該作者
不全啊
回復

使用道具 舉報

地板
ID:896777 發表于 2021-3-26 02:39 | 只看該作者
大佬可否分享一下matlab三階魔方的完整程序
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表