c 繪製任意軌跡的畫板

2021-05-24 09:34:43 字數 1022 閱讀 7031

前兩天群的一同仁,求助寫乙個可以繪製任意圖形程式。經了解後就是乙個可以用滑鼠繪製任意軌跡的畫板。同仁強烈要求能否給些繪圖相關的示例。小的不才,因為寫過天

gdi+

相關的程式,本著碼農本份,就在晚上花了

40分鐘寫了這個畫板。雖不是什麼給力神馬,但也不敢私藏,現貼出來和大家一起學習學習,還請多多指教。

廢話有些太多,趕緊入正題。

平台:.net framework 3.5

,技術:

winform

、gdi+

寫個東西首先想的是在滑鼠移動並且滑鼠左鍵按下時,記錄

mousemove

過程中的點。然後把這些記錄下來的點連線起來就成了繪製的任意圖形。用什麼來記錄這些點呢?第一反映是建立一窗體,在窗體類裡新增乙個點集合的資料成員。但要是多畫幾個圖形呢,那不就得多個點集合的資料成員!?於是建一線類來儲存這些點,線類「有乙個」點集屬性。因為滑鼠每次移動都會新增乙個點,所以線類裡應該有乙個新增點的方法。需要把線類的圖形重繪到窗體客戶區上,所以新增了乙個繪製方法。這裡我們用了

gdi+

裡的drawlines

方法。為了把窗體客戶區的繪圖表面傳遞到繪製方法裡,給繪製方法新增了乙個繪圖表面的引數。最後補上相應的構造器,以及相應的資料成員初始化。

線類完整**如下:

線類**好了後,就是怎麼用這個類進行繪製了。新建乙個窗體作為畫布。在窗體中放乙個線類的集合,以存放繪製的多條線。為了方便描述正在繪製的線,再新增乙個正在繪製的線的引用作為窗體的資料成員。

現在來看一條的的繪製過程:

按照上圖,滑鼠事件響應函式就很好寫了。

最後,萬事具備,只欠東風了:就是把記憶體中的線重繪到窗體的繪圖表面。這裡在

paint

事件響應函式裡,呼叫各個線類的繪製方法就

ok了。注意繪圖表面從

paint

事件的事件引數

painteventargs

裡去取。畫布窗體的**如下:

後記:http://download.csdn.net/source/3045030

幾何畫板中繪製過圓上點的切線的技巧

我們用幾何畫板可以輕鬆的製作圓,也可以粗略的畫出過圓上一點的切線,但這並不嚴謹的,數學中講究嚴謹,那麼怎樣才能準確的作出過圓上一點的切線呢?利用幾何畫板,就可以準確地畫出過圓上一點的切線,下面將給大家作詳細介紹。具體的操作步驟如下 步驟一 繪製圓 開啟幾何畫板,選擇左邊側邊欄中的 圓工具 在畫板上繪...

2d的公式 繪製二體2D執行軌跡

本來想要繪製三體的3d軌跡,但是一開始難度有點大,先從最簡單的開始,二體類似地月系統 首先來定義乙個繪製函式 因為是乙個執行軌跡,所以時間就是必要因素 解決整體漂移問題 萬有引力計算函式 萬有引力公式為前半部分,後半部分其實是乙個單位向量,所以,計算結果為向量,這裡的萬有引力常數並不是真實的數值,這...

C 繪製曲線的類

using system using system.collections.generic using system.text using system.drawing namespace curveplot public bitmap plot curve byte data if dataque...