簡體   English   中英

WPF畫布作為數學繪圖區域

[英]WPF Canvas as a math graphing area

在我的圖形計算器中,我將畫布用作在其上繪制功能圖的平面。 我注意到,每當我輸入復雜的函數時(為此我使用貝塞爾曲線,因此該函數越復雜->為使圖形看起來更平滑,我需要渲染的點越多),它就會變得很滯后並且總體上不會表現良好。

這些解決方案中哪一個是計算成本最低的/因此是最佳方法?

1.(我當前的解決方案)在ScrollViewer中使用巨大的Canvas來限制視圖區域

我發現的缺點:

  • 整個畫布被渲染,甚至是不可見的部分

  • 當畫布上的元素超過50K時開始滯后

2.僅使用不太大的Canvas,並通過TransformMatrix管理平移/縮放

我認為可能存在缺點(未嘗試解決):

  • 當它必須重新繪制並重新計算所有動態時,會不會變得更加寬松?

3.其他解決方案?

任何幫助將不勝感激。

如果可以避免,您真的不希望使用離散的視覺效果來表示圖表/圖形。 他們很沉重,並且經常參與輸入處理和布局。 我建議直接使用WPF的圖形/幾何API。 我建議實現一個自定義控件,該控件執行自己的呈現(請參閱OnRender )。 我還建議實現IScrollInfo以便您可以管理自己的滾動:您將始終知道視口的大小和位置,這使您可以選擇在滾動時使幾何圖形無效,然后重建圖形中實際位於視圖中的部分。 那應該大大減少開銷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM