繁体   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