【问题标题】:How to draw zoomable picturebox without redrawing new points如何在不重绘新点的情况下绘制可缩放图片框
【发布时间】:2013-07-24 18:43:36
【问题描述】:

我已阅读:C#: How to draw very large controls in a scrollable, zoomable panel?

在我的问题中,我使用图片框在 c# 中绘制我的图表(实际上是轮廓)。我想在滚动鼠标时绘制可以像 zedgraph(c# library) 一样缩放的图片框:

我的问题是:我可以在不重新计算点的情况下绘制它并像 zedgraph 那样从头开始绘制它吗?

【问题讨论】:

  • 在某些时候,您将不得不对此进行抗锯齿处理。否则,您可以做的是确保在重新绘制时限制视口,从而节省一些 CPU 周期。
  • 所以基本上没有办法在不重新计算的情况下缩放它 n 重绘我的所有观点(在我的视口中)?
  • 你可以..它只是你放大的越多..它就会越模糊。这就是我所说的抗锯齿,它可以平滑线条。否则,您可以将几个缩放级别缓存到一个点,然后在用户进一步缩放时开始重新绘制。
  • 是的,这就是我想要避免的,我的图像变得模糊,:)

标签: c# drawing zooming picturebox


【解决方案1】:

我想这在一定程度上取决于您的图形/轮廓的外观。 但是,我认为是的,您可以在完全缩放时绘制整个轮廓,并更改宽度/比例/x 属性以在缩放和平移时操纵显示。

【讨论】:

  • @Ardhian'koponk'Nugroho 是的,所以澄清一下,我的意思是,如果您在“全放大”时计算一次积分,您应该能够继续使用它而无需再次重新计算您的积分。例如,您想在一个 800 像素的框中显示您的轮廓;那么你可能会在 5000 像素的位置以完全缩放的方式绘制轮廓......然后当你放大和缩小时,你只需将更多的轮廓图像放入 800 像素的框中。
  • @Ardhian'koponk'Nugroho 你有什么代码可以让你的轮廓进入你的图片框吗?
  • 我的朋友也建议,也许我应该尝试一下。是的,我正在使用图片框中的绘画事件处理程序来绘制我的点(为了绘制我的轮廓,我正在使用一些算法从我从网格数据中的 4 个点构造的矩形中绘制矩形)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-28
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 2021-11-19
  • 1970-01-01
相关资源
最近更新 更多