Processing雁群實驗(續)
本案例要點:
(1)旋轉複雜不規則圖形;
(2)運用二維陣列定義圖形;
(3)滑鼠左右移動控制物體沿 Y 軸旋轉;
(4)點選滑鼠線條變色。
效果圖如下:
複雜圖形3D旋轉演示.gif
程式碼如下:
int [][]myArray;//define angle of rotationfloat angle_1; void setup() { size(500, 500, P3D); smooth(); //Define two dimensional array myArray=new int[200][3]; for (int i=0; i<100; i++) { for (int j=0; j<3; j++) { myArray[i][j]=int(random(-100, 100)); } } }void draw() { background(200); translate(width/2, height/2, 0); rotateY(radians(angle_1)); noFill(); //draw the shape to rotate box(200); beginShape(); for (int i=0; i<myArray.length; i++) { vertex(myArray[i][0], myArray[i][1], myArray[i][2]); } endShape(); }void mousePressed() { stroke(random(255),random(255),random(255)); }void mouseMoved() { angle_1=map(mouseX, -width/2, width/2, 0, 360); }
注意:
因為要是一個固定的圖形進行旋轉,不同於上一篇中的變動圖形,這要求3D位點座標要在setup()函式中提前賦值。如果在draw()中賦值則每次迴圈都重新隨機畫圖,不符合本例要求。
擴充1:用座標點畫規則圖形
規則圖形可以在3D座標中定義座標點,如上例中的座標點由隨機變為規則,變化的程式碼如下:
int [][]myArray={ {0,0,0}, {200,0,0}, {200,0,200}, {0,0,200}, {0,0,0}, {0,100,0}, {100,200,0}, {200,200,0}, {200,0,0}, {200,0,200}, {200,200,200}, {200,0,200}, {200,0,0}, {200,200,0}, {100,200,0},//{0,200,100}, {0,100,0}, {0,200,100}, {0,200,200}, {0,0,200}, {0,200,200}, {200,200,200}, {200,200,0}, };
動態效果如圖:
規則圖形3D旋轉演示
作者:一石匠人
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1727/viewspace-2816130/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android APT(Annotation Processing Tool) 實踐AndroidAPT
- Realtime Data Processing at Facebook
- 論文Anonymous Zether實驗復現(持續更)
- 實驗六 連續訊號的頻域分析
- Recursive Algorithm for Sliding Signal ProcessingGo
- XStream: Stream Processing Platform at FacebookPlatform
- java-apt程式設計實踐(Annotatino Processing Tool+maven)JavaAPT程式設計Maven
- 並行處理 Parallel Processing並行Parallel
- 繼續完成驗證碼
- 【Processing】互動藝術-入門
- 【numpy學習筆記】 Array processing筆記
- 題解:CF644B Processing Queries
- SAP 中的 BOPF(Business Object Processing Framework)ObjectFramework
- 論文解讀《The Emerging Field of Signal Processing on Graphs》
- 實驗11.ACL實驗
- ET·ci —持續整合驗證平臺
- 8 年產品經驗,我總結了這些持續高效研發實踐經驗 · 研發篇
- 實驗一--Easy IoT實現mqtt實驗MQQT
- 實驗5.OSPF配置實驗
- 實驗8.Vlan Hybrid實驗
- 實驗10.3層vlan互通實驗
- 20個實驗之實驗10
- 20個實驗之實驗11
- 30個實驗之實驗23
- 30個實驗之實驗25
- 20個實驗之實驗16
- SciTech-BigDataAIML-CV+CG-Digital Image/Signal Processing-AIGit
- Processing 網格紋理製作(棋盤格)
- 《MapReduce: Simplified Data Processing on Large Clusters》論文研讀
- 實驗
- spark sql 實踐(續)SparkSQL
- 萌新的裝機體驗(持續更新)
- html5經驗記錄持續更新HTML
- Vue 開發經驗小記(持續更新)Vue
- 實驗7.Vlan劃分實驗
- 作業系統實驗——實驗1《CPU Scheduling》&&實驗二《Allocation & Reclaim》作業系統AI
- 實驗三驗收3
- 智慧文字自動處理(Intelligent text automatic processing)(二)Intel