AndroidDev 板


LINE

※ 引述《fatalcord (QQ)》之銘言: : 最近在作雷達相關的程式開發 : 目前只做到從雷達收0~180度的物體距離資訊到手機 : 我的目標是在螢幕上訂定一個固定點作為座標原點 : 依據所得的距離資訊 : 在0~180度的位置各別依據其距離繪點 : 並把這些點連起來 : 有找了關於2D二維圖形的資料來看 : 但是不曉得該從何下手 : 不知道板上有沒有人做過相關程式的 : 可否提供一些意見或是網站資料作為參考 : 由衷感謝 照你敘述的內容來看,我猜想這個實作應該是要real time的吧? 那麼顯示的View就使用自訂的SurfaceView,例如: public class RadarView extends SurfaceView implements SurfaceHolder.Callback { private LinkedList<PointF> mData; // 成員們 private Renderer mRenderer; // 繪圖用執行緒 private Paint mPaintPoint, mPaintLine, mPaintRadarText; // 繪圖用的Paint public RadarView(Context context){...} // 建構子 [ Interface implements ] // 實作SurfaceHolder // 以下為針對雷達資訊客製的函數 public int AddRadarPoint(PointF p){...} // 輸入單資料點並加入到尾端,可設定固定長度,並回傳索引。 public int AddRadarPointAll(LinkedList<PointF> list){ mData = list; } // 輸入整個資料點集合,回傳集合長度。 public LinkedList<PointF> getRadarPointList(){ return mData; } // Get public onDraw(Canvas c){...} // 這邊進行繪點與繪線,用LinkedList的理由是畫完後的點就直接丟棄,這樣確保 // 都在O(1)中完成;繪圖執行緒是一直在執行的,因此可以加個判斷來防止空List // 的全黑畫面。 public class Renderer extends Thread { private boolean isRunning = false; private int nDelay = 30; private SurfaceHolder holder = null; private RadarView view = null; public Renderer(RadarView view, SurfaceHolder sh){...} // 建構 public void setRunning(boolean b){ isRunning = b; } public void setDelay(int d){ nDelay = d; } public int getDelay(){ return nDely; } @Override public void Run() { Canvas c = null; while(isRunning) { // 主迴圈 synchronized(holder) { try{ c = holder.lockCanvas(); // 取得canvas view.onDraw(c); // 繪圖 }catch(Exception e){} finally { holder.unlockCanvasAndPost(c); // unlock canvas } } try { Thread.Sleep(nDelay); // 小睡片刻 }catch(...){} } } } } 這是以若我要實做這個case所會設計的基本架構,我省略了很多小細節比如normalize資 料點,設定每個pixel或單位距離所代表的資料長度等等。 繪圖的部分就使用 drawCircle, drawPath or drawLine 等等的來畫圖就好了,而這個設 計是應付有多少更新就畫多少,因此若設計成一段時間更新一次也可以加入訊息機制的方 式取代持續的執行緒回圈( e.g. Handler )來節省電力消耗。 上面的code是直接打的沒有compile過,所以使用上有問題可以上網找SurfaceView、 Thread、Handler等等的用法。 http://pastebin.com/CxtRvtxJ --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.175.80
1F:推 fatalcord:謝謝您的回覆,讓我受益良多,我會再找找相關資料的 08/20 10:30
2F:推 gn00273680:很好的解說,感謝 08/20 11:23
3F:推 drdsmile:很讚的解說 幫推一個 08/20 12:43
※ 編輯: rize0528 來自: 140.115.51.97 (08/25 14:51)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP