儀表指標樣式 基於GDI 技術開發工業儀錶盤控制項

2021-10-14 18:13:02 字數 1577 閱讀 6639

上次給大家看了乙個上位機介面之後,很多人表示對那個儀錶盤的開發感興趣,今天就跟大家分享一下整個的開發過程,由於整個儀錶盤開發的過程還是有些複雜的,無法將所有的**都一一展示,所以重點跟大家分享一下開發的思路,畢竟每個人的風格都不一樣。

上位機ui介面

gdi+開發控制項其實並不是特別難,但是會比較複雜,涉及的東西比較多,需要有一定的空間想象能力,甚至是數學幾何基礎。

任何乙個複雜的gdi+控制項,裡面無非就是字段(field)、屬性(property)、方法(method)、委託(delegate)以及事件(event)。其實屬性是靈魂,gdi+設計及繪製就是圍繞屬性來進行開發的。

我們拿到這樣一張效果圖之後,第一步要做的事情是,確定需要設計哪些屬性?

a:儀錶盤部分:

gaugecolor:設定或獲取儀錶盤的邊框顏色

pointercolor:設定或獲取儀錶盤的指標顏色

rangemin:設定或獲取量程的最小值

rangemax:設定或獲取量程的最大值

currentvalue:設定或獲取當前數值

rangealarmmin:設定或獲取量程報警最小值

rangealarmmax:設定或獲取量程報警最大值

topgap:設定或獲取整個控制項的上下間隙

leftgap:設定或獲取整個控制項的左右間隙

pointerradius:設定或獲取中心原點的半徑

alarmcolor:設定或獲取報警線的顏色

b:刻度值部分

bigscalecount:設定或獲取大刻度數量

smallscalecount:設定或獲取小刻度數量

isallowfullcircle:設定或獲取是否允許整圓顯示

scalewidth:設定或獲取刻度值的最大寬度

scaleheigth:設定或獲取刻度值的最大高度

c:文字顯示部分

textcolor:設定或獲取文字顏色

unittext:設定或獲取顯示單位

istextvisiable:設定或獲取文字內容是否顯示

textgap:設定或獲取文字顯示位置與刻度的間距

通過一系列的分析之後,確定了設計以上20種屬性,確定屬性之後,即可通過重寫onpaint事件進行重繪,重繪步驟又是怎樣的呢?

確定整體核心三要素(中心點、偏移角度、圓環半徑)

繪製大刻度

繪製小刻度

繪製刻度值

繪製文字

繪製實時值指標

繪製報警框

本文旨在結合gdi+的相關技術介紹了乙個儀錶盤控制項開發的整個過程,自定義控制項在上位機開發中應用非常廣泛,除了gdi+繪製控制項以外,還有擴充套件控制項和組合控制項的應用。對於從事上位機開發的學員來說,學好gdi+是非常有必要的,可以大大增加你專案的擴充套件性和可視性。

c 儀表指標旋轉

請教下,滑鼠事件裡怎麼讓滑鼠在繪製的儀表上移動,儀表指標也會隨著旋轉啊,請求指導。謝謝 我是在上獲取滑鼠的位置的,把這橫軸範圍對映到對應0到100的範圍裡,發現這樣會出現誤差。有好點的實現方法嗎 你看看這個是否符合你需要 win10 uwp 車表盤 徑向規 按照盤子的形狀調整長度 圓上的點 這裡省事...

python儀表指標識別 一種指標式儀表的識別方法

一種指標式儀表的識別方法 楊世傑,張平 摘 要 當前指標式儀表識別技術日益成熟,其中指標形狀和位置的識別大多 採用hough 變換演算法,傳統的 hough 變換演算法運算時間長 儲存空間大,使 得識別過程效率低下。針對以上缺點,提出一種改進型 hough 變換。通過限 定指標式儀表表盤環形區域 運...

S 2012 儀表 指標

指標的功能主要是要弄過來標示數值的大小,就好像手錶內的時針與分針,從指標與刻度的對應狀況可以讓使用者判讀數值的內容。指標的內容與設定介面中的 values 是一體兩面,在儀表內有幾個指標就代表儀表資料 values 內有幾個專案。當數值拖至 values 後,即可右擊 values 的專案以編輯 p...