集成了三視圖取橫及動畫的PC上位機程序
發(fā)布時間:2013/11/23 21:12:40 訪問次數(shù):1316
在協(xié)議部分,如果使用帶有協(xié)議的主控“小卡”,FLC057WG通過串口按照協(xié)議格式發(fā)送數(shù)據(jù),就能實現(xiàn)對3D8S上的各點亮度的控制。在第2代的協(xié)議中,還集成了輸入模式的選擇,使得同樣的動畫數(shù)據(jù)輸出可以在3個正交方向顯示,同樣的動畫邏輯,顯示方向可以是上下,也可以是左右,或者前后。進一步擴展了動畫的多樣性,讓動畫可以更富于變化,也減少了動畫編程的難度,不用因為轉(zhuǎn)變顯示方向而重新設計算法,讓“小卡”自行“舉一反三”。
從數(shù)據(jù)結(jié)構(gòu)分析,其實對于一個8x8x8立方矩陣,或是一個64 x8平面矩陣的控制,其實在應用層面,就是對一個長度為64的單字節(jié)數(shù)組的控制。一個字節(jié)有8位,每位都有1和O兩種狀態(tài),對應LED的亮和滅。長度為64,那么也就有了8×64=512位,對應512顆LED。而對數(shù)紐操作是有一定方向性的,或者說,這51 2位其實關(guān)系并不是那么對等。這就造成某些動畫從某個角度切入容易實現(xiàn),而這個特定角度又未必是理想的觀賞角度。此時借助輸入模式的切換,就能輕松解決這樣的矛盾。
說到動畫顯示,個人感覺在8x8×8光立方有限的分辨率上顯示靜態(tài)位圖、字體的能力還是比較薄弱的,又因為點與點間距較大,不太容易構(gòu)成連線的視覺形象,所以顯示筆劃效果也不理想。而一旦運動起來,效果又完全不一樣。所以我這里說的動畫,都是矢量動畫,是通過計算所求得的新一幀的動畫。這也是玩轉(zhuǎn)光立方過程中最難而又最有趣的部分。
有了協(xié)議,就可以跨平臺通過外部系統(tǒng)對3D8S的顯示效果進行控制。我用c#編寫了上位機軟件(見圖7、圖8)。3D8S的上位機軟件,可以對3D8S進行三視圖取模,演示各種協(xié)議命令、播放動畫以及音樂頻譜。玩家通過它,可以更容易理解如何玩轉(zhuǎn)3D8S光立方。更讓人驚喜的是,西安的“噬魂”同學,就根據(jù)3D8S開放的協(xié)議,在學習Java語言的過程中,編寫出自己的上位機程序,比起我“原配”的程序毫不遜色,真是厲害。我也是后來才知道,其實市面上大多的LED廣告牌的控制,也都同樣采取了上位機配合下位機的彤式。看來“驅(qū)動與動畫分離”也是業(yè)內(nèi)流行的驅(qū)動方式。
想了解關(guān)于3D8S的更多資料,歡迎訪問我的博客—一古作坊(http://aguegu.net)。
在協(xié)議部分,如果使用帶有協(xié)議的主控“小卡”,FLC057WG通過串口按照協(xié)議格式發(fā)送數(shù)據(jù),就能實現(xiàn)對3D8S上的各點亮度的控制。在第2代的協(xié)議中,還集成了輸入模式的選擇,使得同樣的動畫數(shù)據(jù)輸出可以在3個正交方向顯示,同樣的動畫邏輯,顯示方向可以是上下,也可以是左右,或者前后。進一步擴展了動畫的多樣性,讓動畫可以更富于變化,也減少了動畫編程的難度,不用因為轉(zhuǎn)變顯示方向而重新設計算法,讓“小卡”自行“舉一反三”。
從數(shù)據(jù)結(jié)構(gòu)分析,其實對于一個8x8x8立方矩陣,或是一個64 x8平面矩陣的控制,其實在應用層面,就是對一個長度為64的單字節(jié)數(shù)組的控制。一個字節(jié)有8位,每位都有1和O兩種狀態(tài),對應LED的亮和滅。長度為64,那么也就有了8×64=512位,對應512顆LED。而對數(shù)紐操作是有一定方向性的,或者說,這51 2位其實關(guān)系并不是那么對等。這就造成某些動畫從某個角度切入容易實現(xiàn),而這個特定角度又未必是理想的觀賞角度。此時借助輸入模式的切換,就能輕松解決這樣的矛盾。
說到動畫顯示,個人感覺在8x8×8光立方有限的分辨率上顯示靜態(tài)位圖、字體的能力還是比較薄弱的,又因為點與點間距較大,不太容易構(gòu)成連線的視覺形象,所以顯示筆劃效果也不理想。而一旦運動起來,效果又完全不一樣。所以我這里說的動畫,都是矢量動畫,是通過計算所求得的新一幀的動畫。這也是玩轉(zhuǎn)光立方過程中最難而又最有趣的部分。
有了協(xié)議,就可以跨平臺通過外部系統(tǒng)對3D8S的顯示效果進行控制。我用c#編寫了上位機軟件(見圖7、圖8)。3D8S的上位機軟件,可以對3D8S進行三視圖取模,演示各種協(xié)議命令、播放動畫以及音樂頻譜。玩家通過它,可以更容易理解如何玩轉(zhuǎn)3D8S光立方。更讓人驚喜的是,西安的“噬魂”同學,就根據(jù)3D8S開放的協(xié)議,在學習Java語言的過程中,編寫出自己的上位機程序,比起我“原配”的程序毫不遜色,真是厲害。我也是后來才知道,其實市面上大多的LED廣告牌的控制,也都同樣采取了上位機配合下位機的彤式?磥怼膀(qū)動與動畫分離”也是業(yè)內(nèi)流行的驅(qū)動方式。
想了解關(guān)于3D8S的更多資料,歡迎訪問我的博客—一古作坊(http://aguegu.net)。