簡體   English   中英

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

[英]How to handle NaN value in graphics.DrawLine method in C#

我想在Graphics.DrawLine方法中處理NaN值。 請參考下面的代碼片段。

Private Graphics g;

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

在某些情況下,在我們的項目中, y1y2值為NaN 因此會引發“溢出錯誤”之類的異常。

如何處理NaN值。

唯一的解決方案是檢查您的任何值是否為NaN,並且如果它們為,則不要調用DrawLine(如果x1,x2等是float ):

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

假設您的數據代表某種圖形,NaN可能意味着以下兩種情況之一:

  1. 這可能意味着數據中有錯誤。
  2. 它可以代表數據中的有效空白。

在第一種情況下,NaN表示數據不正確,您有兩種選擇:不繪制任何數據,或將所有數據繪制到第一個NaN。 無論哪種方式,您都應該警告用戶該問題。

在第二種情況下,如果存在任何NaN,則應將數據“切”成不包含任何NaN的各個部分,然后繪制這些部分。 這樣您的圖形中就會有(有效)空白。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM