我正在渲染插值曲线:
e.Graphics.DrawLines(new Pen(Color.Red), _interpolationPoints.ToArray());
Run Code Online (Sandbox Code Playgroud)
有时会抛出OverflowException.
检查_interpolationPoints数组以科学计数法显示一些非常大的值,例如{X = 0.0 Y = -1.985174E + 10}
我怀疑Y = -1.985174E + 10是GDI +无法处理的值.那很好,但是我可以绘制的最大/最小X和Y值是什么,因此约束数据(并警告用户)而不是在绘画期间捕获溢出异常?是否记录了限制?
例如,我想做这样的事情:
if (yVal < float.MinValue || yval > float.MaxValue)
throw new OverflowException("Interpolation value too large to be rendered.");
Run Code Online (Sandbox Code Playgroud)
在_interpolationPoints数组的填充期间停止进程.(浮动混合/最大不能正常工作.我仍然得到例外.)