[英]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.