找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2564|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

stm32+oled組成旋轉(zhuǎn)3d圖(例如紙飛機(jī))

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:244158 發(fā)表于 2019-4-1 16:01 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
提到3d渲染引,通常只會(huì)用,現(xiàn)在呢把這東西移植到了stm32上,大家可以學(xué)習(xí)下,不光能旋轉(zhuǎn)立方體,只要是簡(jiǎn)單的3d圖(例如紙飛機(jī))都能顯示


視頻:https://v.youku.com/v_show/id_XMzc0NDEyNzc4NA==.html

貼上源碼

  1. float cube[8][3]={{-15,-15,-15},{-15,15,-15},{15,15,-15},{15,-15,-15},{-15,-15,15},{-15,15,15},{15,15,15},{15,-15,15}};//立方體坐標(biāo)
  2. int lineid[25]={1,2,2,3,3,4,4,1,5,6,6,7,7,8,8,5,8,4,7,3,6,2,5,1};//記錄點(diǎn)之間連接順序
  3. float *matconv(float *a,float b[3][3]){//計(jì)算矩陣算法
  4. float res[3];
  5.         int i;
  6.         for(i=0;i<3;i++){
  7.          res[i]=b[i][0]*a[0]+b[i][1]*a[1]+b[i][2]*a[2];
  8.         }
  9.         for(i=0;i<3;i++){
  10.          a[i]=res[i];
  11.         }
  12.         return a;
  13. }
  14. void rotate(float *obj,float x,float y,float z){//旋轉(zhuǎn)這個(gè)向量

  15.         float rz[3][3]={{cos(z),sin(z),0},{sin(z),cos(z),0},{0,0,0}};
  16.         float ry[3][3]={{0,0,0},{0,cos(y),sin(y)},{0,sin(y),cos(y)}};
  17.         float rx[3][3]={{cos(x),0,sin(x)},{0,0,0},{sin(x),0,cos(x)}};
  18.         matconv(matconv(matconv(obj,rz),ry),rx);
  19. }
復(fù)制代碼

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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2019-4-1 18:30 | 只看該作者
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說(shuō)明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

板凳
ID:519106 發(fā)表于 2019-7-15 09:13 | 只看該作者
想問(wèn)問(wèn)大佬3d渲染引是啥
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表