開源C# WPF項目推薦:WPFCoreUniversalApp
站長前面的話:文中有好幾張圖片太大,或者幀數(shù)大于300幀上傳失敗,感興趣可查看該項目倉庫ReadME說明,或者本站轉(zhuǎn)載地址:https://dotnet9.com/15823.html
-----------------------------------正文開始-------------------------------------------------
WPF(.Net Core 3.1)基于MVVM+View2D,3D(醫(yī)療)模板應(yīng)用
- Github地址:https://github.com/chancezheng/WPFCoreUniversalApp
- Gitee地址:https://gitee.com/ChanceZXY/WPFCoreUniversalApp
項目由來
本人一直從事PC端開發(fā)工作,主要集中在醫(yī)療和工業(yè)軟件開發(fā),所以就想寫一款通用的PC端模板,包括醫(yī)療系統(tǒng),工業(yè)控件,會涉及到比較多的2D,3D圖像,可能會涉及到算法,便于以后快速開發(fā),之前也寫過一些自定義控件和視圖,現(xiàn)在正好用到這個項目模板中。
項目介紹
WPFCoreUniversalApp是從零開始,基于.NetCore31,采用MVVM模式,目前連接的是Mysql數(shù)據(jù)庫,準(zhǔn)備分為兩大塊:醫(yī)療(Medical),工業(yè)(Factory),其中包含UserControl,CustomControl,Animation,2D,ViewPor3D,日志記錄,Excel文檔交互,二維碼控件,手寫的ORM,IOC,權(quán)限認(rèn)證和管理等等。另外我寫了一些常用的控件桌面自定義控件(基于.Net Core3.1),比如二維碼控件(配置即可生成想要的任意二維碼),MessageDialog(彈窗提示View)等。
- UI布局------------------------------√
- 窗口開啟和關(guān)閉動畫(2D和3D)-----√
- 用戶注冊和修改---------------------√
- ORM--------------------------------√
- IOC----------------------------------√
- 數(shù)據(jù)加密(MD5、DES)----------------√
- MedicalReport界面布局--------------------√
- 用戶身份校驗-----------------------×
- 權(quán)限分配和管理----------------------×
- 日志文件-----------------------------×
- Excel文檔交互------------------------√
- 圖形(折線、曲線、餅圖、柱狀圖等)-------------------√
- 軟件自動更新------------------------x(之前寫過,我就直接拷貝過來再改下得了)
- 想到什么補(bǔ)充什么吧。。。。。。
登陸效果圖(2D/3D):
圖片太大,放個靜圖吧,原圖是3D的哦,原圖看原文:

登陸界面切換3D動畫核心代碼如下:
Visibility="{Binding UserOperationType,Converter={StaticResource LoginRegisterVisibilityConverter},ConverterParameter=Login}"/>
Visibility="{Binding UserOperationType,Converter={StaticResource LoginRegisterVisibilityConverter},ConverterParameter=Register}"/>
Visibility="{Binding UserOperationType,Converter={StaticResource LoginRegisterVisibilityConverter},ConverterParameter=ForgotPassword}"/>
醫(yī)療報告系統(tǒng)效果圖(布局完成,功能模塊一部分)
- 查看、登記、編輯、刷新、刪除-----------------√
- Excel模板、 導(dǎo)入、導(dǎo)出(Excel、Word)--------------------------√
- 診斷-------------------------------------------------完成一半
- 數(shù)據(jù)轉(zhuǎn)PDF,XML,Json-----------------------------近期完成
- 轉(zhuǎn)為圖形統(tǒng)計(2D、3D)-----------------------------√
- 。。。。。。

診斷可實現(xiàn)圖片輪播瀏覽,還可以查看360度全景詳細(xì)圖片
原圖太大,看倉庫或者本站介紹鏈接
3D圖像平面切割效果(可任意角度去切割三維圖形),項目中有例子,有興趣的可自行查看
以下示范立方體的,原理如下:假設(shè)平面內(nèi)有一定點P(0)(該點也在三維圖形空間內(nèi)),過定點P0的法向量為P(n),設(shè)該平面的任意一點坐標(biāo)為P(x,y,z),則通過法向量垂直平面即可求出平面方程,若P(0)=(0,0,0),則切平面方程為:P(n).Xx + P(n).Yy + P(n).Zz = 0,若P(0)非原點,可通過在y軸上平移得到切平面方程式,即必存在一個常量N滿足P(n).Xx + P(n).Yy + P(n).Zz + N = 0(即為切平面方程通用公式)。設(shè)切平面與XY軸面的夾角α[0,π],切平面旋轉(zhuǎn)的角度β[0,2π],最后我推導(dǎo)得到切平面通用用方程表達(dá)式如下(先計算過原點的,之后可通過平移得到):

【原圖過大,無法上傳】
哭啦,看原文,圖表控件(圖像理論上可繪制達(dá)1000萬個點)
由于自己開發(fā)太慢而且很累(需要寫動畫效果,控件邏輯等),所以現(xiàn)在引入了第三方控件,具體看管理包。另外我把3D球體和圓柱體的推導(dǎo)方法放在了~/DesktopUniversalFrame/Entity/ArithmeticInfer下面,感興趣的可以看看,其它像正方體、長方體的建模就比較簡單了,不會的可以自己查資料,微軟官方文檔也有說明,弄清楚原理再去畫3D就非常簡單了,借助第三方控件就更容易點,后面有時間的話把動畫在Xaml和后臺的寫法單獨(dú)弄一塊,學(xué)會這些就可以做出很炫麗的可視化界面了。
如果您覺得這個項目對你來說用得上,麻煩老哥點個Start。希望與各位還在PC開發(fā)的小伙伴一起交流學(xué)習(xí),有什么問題可以隨時在下方留言,本項目最終目的是要做出一款滿足實際工作業(yè)務(wù)需求控件和視圖。好了,就扯到這里吧,我去繼續(xù)擼碼了!
