2010-02-23 93 views
0

我正在設計一個使用MVC體系結構變體的CAD應用程序。我的模型和視圖是彼此獨立的。他們通過控制器進行通信。我的問題是如果我需要繪製一個對象(比如線或折線),我需要一些輸入點。什麼是獲得積分的最佳途徑?所有來自視圖的事件都由控制器訂閱,控制器必須保留這些點,然後生成線或折線,最後添加此行以查看。但我不知道如何有效地完成捕捉鼠標點,因爲每個對象將具有不同數量的輸入和不同的輸入驗證算法。 任何幫助將不勝感激。設計CAD應用程序

回答

0

設計CAD軟件時,不僅要考慮靈活性和動態性,還要考慮速度。你應該使用某種類型的包裝類,作爲你和硬件驅動之間非常薄的一層,它應該返回像屏幕像素數組,當前bpp等東西......這就是我要做的並且確實)。現在在C#中,看到它是一種.NET語言,我不確定你可以在下面去看看,但是你仍然可以在控制器和筆對象之間進行處理,不是嗎?

+0

是的,這就是對的。但我正在使用第三方工具作爲繪製控件。用戶將會選擇這個控件上的點,我需要獲取點並調用控件的方法來繪製線條。當控制器正在監聽來自視圖控件的事件時,控制器將獲得鼠標事件並且必須存儲輸入點。我在問如何以更好的方式完成這項工作。 Plz問我,如果我的問題不清楚。 – Ram 2010-02-23 18:47:43

1

3年前我在CAD application工作,這些是我記得我們已經完成的一些提示(順便說一下:應用程序是免費的,您可以下載它,註冊您的副本,並利用桁架編輯器)

1-您可以添加用於形狀繪製的按鈕,例如:線條按鈕,折線按鈕,矩形等等。 2-創建一個變量來保存您的應用程序的當前狀態(可能是枚舉):就緒,繪圖點,繪圖線,繪圖折線,繪圖圓等等。

3-無論用戶點擊一個繪圖按鈕,系統都會進入上述相關狀態。

4-完成繪圖時,系統返回到「就緒模式」,可通過預期的點數(點爲1,線爲2,橢圓爲3等)自動檢測或當用戶按Esc或右鍵單擊繪圖區域(如果預期的點數未知,例如:折線)。如果用戶重新點擊了第一個點並且他已經畫了3點以上,您也可以結束多段線繪製。

5-如果用戶在完成預期點數之前結束操作,系統可能會取消當前的繪圖操作。

...

+0

謝謝。這是一個很好的幫助 – Ram 2010-02-24 03:02:59