gpt4 book ai didi

wpf - 巨大的 WPF 视觉效果的不精确渲染 - 任何解决方案?

转载 作者:行者123 更新时间:2023-12-04 16:17:33 25 4
gpt4 key购买 nike

在 WPF 中渲染巨大的视觉效果时,视觉效果会随着坐标的增加而扭曲和扭曲。我认为它与渲染管道中使用的浮点数据类型有关,但我不完全确定。无论哪种方式,我都在寻找解决问题的实用解决方案。

为了演示我所谈论的内容,我创建了一个示例应用程序,其中仅包含一个嵌入在 ScrollViewer 中的自定义控件,该控件可绘制正弦曲线。

alt text

您可以在此处看到图形对于 double 值 <= 2^24(在本例中为水平坐标值)是可以的,但是从那时起它会失真。

alt text

失真在 2^25 处变得更糟,因此失真随着每增加一位而继续增加,直到它只绘制一些垂直线。

出于性能原因,我只是绘制图形的可见部分,但出于布局原因,我无法“虚拟化”控件,这会使此问题过时。我能想出的唯一解决方案是将图形的可见部分绘制到位图,然后在适当的点渲染位图 - 但是我再次遇到大值的精度问题,因为我无法准确放置位图在我需要的位置。

有人知道如何解决这个问题吗?

最佳答案

这不是 WPF 的错。

浮点数离零越远,精度就越低——这是将巨大的数据范围(-Inf,+Inf)填充到 32(浮点)/64(双)位数据空间的成本。浮点数实际上在 2^30 左右变得不如整数精确。

64 位整数具有恒定的间距 (1),但范围有限,从 -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807。

您也可以考虑使用 Decimal 类型(但它的值范围也有限)。

关于wpf - 巨大的 WPF 视觉效果的不精确渲染 - 任何解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4009588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com