回覆列表
-
1 # 老犢子丶
-
2 # CAD小課堂
設計一款CAD軟體,肯定要考慮資料層與表現層分離。
在架構設計上,可以考慮使用MVC、MVP框架。
關於這方面的知識,可以參考阮一峰的這篇博文。
http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
CAD的資料你可以把它設計成一個記憶體資料庫,在互動的過程當中,其實你繪製的是臨時的圖形物件。只有在互動完成之後,再把資料提交到本地的記憶體資料庫。
當然在寫程式碼的過程中,肯定要使用很多的設計模式:命令模式,工廠模式,訂閱者模式等等。
我自己實現過一個迷你型的CAD軟體,使用C#開發,渲染直接用的是Windows GDI,架構採用的是MVP。實現了很基礎的功能:
繪製直線、圓、矩形、多段線、圓、圓弧。
基本的圖層功能。
編輯功能:複製、映象、偏移。
選擇功能:點選、框選。
共寫了1.2萬行程式碼
AutoCAD裡有各種型別的標註,如:直線、圓、多段線、多邊形等各種型別的元素都稱為資料庫物件。
如果想學習AutoCAD架構和實現,可以去下載擴充套件檔案,好好研究,嘗試CAD的開發。