如何在C#中的graphics.DrawLine方法中处理NaN值

时间:2013-04-11 04:21:51

标签: c# graphics

我想在Graphics.DrawLine方法中处理NaN值。请参阅下面的代码段。

Private Graphics g;

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

在某些情况下,我们的项目y1y2值为NaN。所以它会引发异常,例如"溢出错误"。

如何处理 NaN 值。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

假设您的数据代表某种图形,NaN可能意味着两件事之一:

  1. 这可能意味着数据存在错误。
  2. 它可能会重复数据中的有效差距。
  3. 在第一种情况下,NaN表示数据不好,您有两种选择:不要绘制任何数据,或者将所有数据绘制到第一个NaN。无论哪种方式,您都应该提醒用户注意问题。

    在第二种情况下,如果有任何NaN,您应该将您的数据“切割”为不包含任何NaN的各个部分,然后绘制这些部分。然后你的图表中会有(有效的)空白。