91久久九色_99精品在线免费_91精品欧美一区二区三区_成人一级毛片_国产精品久久久久免费视频_99精彩视频在线观看

【Unity開發】實現帶均勻描邊的雷達圖

2021-03-30
5928
0

雷達圖是游戲中常見的圖表表現之一,比如用來呈現英雄的屬性等等,本文將在 Unity 中實現一個帶均勻描邊可響應點擊的雷達圖。

Graphic類

Unity 的原生 UI 系統 UGUI 提供了名為 Graphic 的基類用于實現各自 UI組件的。該類中有名為 OnPopulateMesh 的方法,只要向參數 VertexHelper 傳遞正確的頂點數組與下標數組,即可構造出我們期望的網格。

網格的構建

雷達圖可視為一個正多邊形,每個頂點沿徑向縮放得到。因此,我們只需要遍歷每個角度,并根據當前角度的權重計算出相應的頂點。最后,我們可以構造下標數組來獲得所需的網格。構造頂點代碼如下

這樣對于邊數為 N 的雷達圖,我們會得到包括中心點在內的 N 1 個頂點,然后是構造下標數組,代碼如下。

這只是一個簡單的方法,結合兩個相鄰的頂點與中心點形成一個三角形。注意,第一個頂點在這里被重用。

響應點擊

 

Unity 的 UI 組件,響應點擊需要實現接口 ICanvasRaycastFilter 的 IsRaycastLocationValid 方法。如果命中多邊形,也就是點擊坐標落在多邊形內,則返回 true ,否則返回 false。首先需要將方法參數里的屏幕坐標轉換到ui的局部坐標。

然后我們檢測坐標是否落在多邊形中。對于我們單擊的坐標,我們檢測到一條指向多邊形外部頂點的光線從它發出。對于多邊形的每一條邊,我們檢測它是否相交。最后,我們計算相交邊的數量。如果是奇數,則表示該點落在多邊形中,否則落在多邊形外。有關詳細信息,請參閱以下問題。

如何判斷一個點是在一個有自交線的封閉圖的內部還是外部?

代碼如下

做完這些就實現了一個可響應點擊的雷達圖了。

描邊

一開始覺得這就不算個問題,搞兩個權重一樣但是半徑不一樣的雷達圖不就能實現了嘛。試了試發現,問題沒有這么簡單。

 

 

因為權重不均勻,所以會導致描邊也不均勻,為了實現均勻的描邊,還需要額外的工作。

解決辦法是額外進行邊的繪制。對于多邊形的每一個頂點 C ,我們按逆時針方向找出它的上一個 A 與下一個頂點 B ,并且得到它相鄰的兩條邊的向外的垂線,把 A 與 B 沿著垂線向外延伸得到 E 與 F,把 E 與 F 沿著邊的方向延伸,相交于點 P,對每個頂點重復上述步驟,就能得到外框的所有點了。

頂點構造代碼

下標數組構造

獲得交點

獲得垂線

最后看效果

結論:

   網上 Unity 實現 雷達圖的代碼能找到不少,但是我發現基本都止步于網格的構造,并沒有將點擊響應的計算以及均勻描邊的實現,有的更過分,甚至連 uv 都不肯算,沒辦法只能自己擼一個,把一些中學幾何的東西又撿起來過了一遍,總的來說,這個過程還是有所收獲的。

 

轉載聲明:本文來源于網絡,不作任何商業用途。

免責聲明:本文內部分內容來自網絡,所涉繪畫作品及文字版權與著作權歸原作者,若有侵權或異議請聯系我們處理。
收藏

全部評論

您還沒登錄

暫無留言,趕緊搶占沙發
繪學霸是國內專業的CG數字藝術設計線上線下學習平臺,在繪學霸有2D繪畫、3D模型、影視后期、動畫、特效等數字藝術培訓課程,也有學習資源下載,還有行業社區交流。學習、交流,來繪學霸就對了。
繪學霸iOS端二維碼

IOS下載

繪學霸安卓端二維碼

安卓下載

繪學霸微信小程序二維碼

小程序

版權聲明
本網站所有產品設計、功能及展示形式,均已受版權或產權保護,任何公司及個人不得以任何方式復制部分或全部,違者將依法追究責任,特此聲明。
熱線電話
18026259035
咨詢時間:9:00~21:00
在線客服
聯系網站客服
客服微信:18026259035
公司地址
中國·廣州
廣州市海珠區曉港中馬路130號之19
繪學霸客戶端(權限暫無,用于CG資源與教程交流分享)
開發者:廣州王氏軟件科技有限公司 | 應用版本:Android:6.0,IOS:5.1 | App隱私政策> | 應用權限 | 更新時間:2020.1.6
主站蜘蛛池模板: 成人福利网 | 999久久久久久久久6666 | 在线日韩视频 | 精品欧美一区二区三区精品久久 | 在线国产网址 | 久久精品国产一区二区 | 精品在线一区二区三区 | 日韩中文字幕电影 | 亚洲黄色中文字幕 | 成人二区 | 国产精品久久久久久久久久久不卡 | 日韩视频在线一区二区 | 亚洲国产精品一区二区久久,亚洲午夜 | 久久污| 国产精品一二三区 | 久久久久久久久久久国产 | 精品伊人久久久久7777人 | 国产精品97 | v天堂福利视频在线观看 | 久久精品国产清自在天天线 | av中文字幕在线播放 | 手机看片福利视频 | 毛片免费观看视频 | 日日干夜夜干 | 欧美一级毛片免费看 | 日韩一级片 | a免费在线观看 | 日本一区二区在线视频 | 国产剧情一区二区三区 | 欧美日韩国产一区二区 | 国产精品久久久久久久婷婷 | 欧美精品在线一区二区 | 天天摸天天 | 国产一区二区三区四区hd | 国产伦精品一区二区三区在线 | 国产在线观看一区二区 | 亚州国产精品 | 国产精品国产成人国产三级 | 99精品国产热久久91蜜凸 | 亚洲一区欧美一区 | 色网站免费 |