2013-03-01 48 views
0

我正在寫一個各種繪畫程序,使用C#.Net/WinForms和壓力敏感度是必須的。我已經設置了一切,並從平板筆獲取壓力信息。這都不是問題。我會如何着手繪製具有壓力敏感性的繪畫程序?

我遇到的問題是,我將如何採用典型的簡單繪圖程序(即'Scribble')並使用我得到的壓力數據進行繪製?塗鴉類型的簡單應用跟蹤當前和以前的光標位置,並啓用繪圖,並在它們之間繪製線條。但是捕捉光標位置的每個點在使用固定寬度線之間繪製。

假設我有我需要的所有數據:x位置和筆壓力,我將如何開始考慮在應該是不同寬度的點之間繪圖?

回答

0

最簡單的方法是跟蹤前一個點和前一個尺寸(基於壓力),然後使用之前的尺寸繪製一條從前一點到當前點的線。

即使使用GDI +也是如此,如果您確保不在事件處理程序代碼中創建新對象。

我提到的另一種方法是更先進的(雖然可能會產生更好的結果),並且我可能最終在以後的任何時候完成基於矢量的操作。

+0

Cameronjchurch建議的不是這個嗎?似乎有點粗魯,做出與他的答案相同的答案,並將其標記爲答案。至少給試圖幫助你的人聲譽 – Alan 2013-03-11 04:52:38

+0

如果這就是他的意思,那不是我理解他的方式。 – OurManFlint 2013-03-11 06:19:27

0

我會打破你的總xy位置到許多較小的xy位置(可能是一個像素或兩個長度)並相應地應用相應於筆壓的寬度。

+0

如果我正確地理解了你,那將是對GDI +例程的很多調用,這會使事情減慢很多。 我想過計算點之間的角度,然後平分這些角度,並在主點兩側用對應於壓力的距離設置一個點,然後使用前一點和兩點的兩個邊點繪製多邊形當前點的邊點。這可能涉及遞歸,我猜。 – OurManFlint 2013-03-01 20:11:54

+0

是的,我的建議可能會使這些電話很多。好點子。 – cameronjchurch 2013-03-01 20:22:53