如何处理图形中的NaN值.c#中的DrawLine方法

本文关键字:NaN 中的 方法 DrawLine 何处理 处理 图形 | 更新日期: 2023-09-27 18:08:29

我想在图形中处理NaN值。画直线的方法。请参考下面的代码片段。

Private Graphics g;
m_g.DrawLine(pen, x1, y1, x2, y2);

在某些情况下,我们的项目y1y2的值为NaN。所以它会抛出类似"overflow error"的异常。

如何处理NaN

如何处理图形中的NaN值.c#中的DrawLine方法

唯一的解决方案是检查是否有任何值是NaN,如果它们是(如果x1, x2等是float s),则不要调用DrawLine:

if (Single.IsNaN(y1) || Single.IsNaN...)
{
    //Handle error
}
else
{        
    m_g.DrawLine(pen, x1, y1, x2, y2);
}

假设您的数据表示某种图形,NaN可能意味着以下两种情况之一:

  1. 这可能意味着数据有错误。
  2. 它可能代表数据中的有效差距。

在第一种情况下,NaN意味着数据是坏的,您有两个选择:不绘制任何数据,或者将所有数据绘制到第一个NaN。无论哪种方式,你都应该提醒用户注意这个问题。

在第二种情况下,如果有任何nan,您应该将数据"切割"成不包含任何nan的单独部分,然后只绘制这些部分。然后你的图形将有(有效的)空白