我有一个PictureBox
并且我想通过知道它的数据点(点的 X,Y)来绘制二极管曲线。目前我的图片框大小为 365*468 像素。我正在挠头将数据点转换为像素友好值,以便曲线在图片框上很好地绘制。
到目前为止,我尝试了各种公式,但没有成功!目前我被困在代码中,它至少显示了一点曲线!
private PointF[] TranslatePoints(PointF[] points)
{
var count = points.Count();
var p = new PointF[count];
for(var i = 0; i < count; i++)
{
p[i].X = DrawingArea.Width * (1 + (points[i].X / _voltageRange));
p[i].Y = DrawingArea.Height * (1 - (points[i].Y * (float)Math.Pow(_currentRange, -1)));
}
return p;
}
_voltageRange
并且_currentRange
是我希望曲线基于的比例...通常是+2,如果X轴上的平均值在-2和+2之间,则应该绘制它们,因为Y轴值的电流应该例如,如果它们在 -10 micro 和 +10 u 之间,则绘制
我希望这个方法尽可能独立,所以如果我调整图片框的大小,比例会正确更新。
例如,这是我拥有的实际值的第一个数据点: (-0.6375, -0.00000993375) 并且我的方法将其转换为 (24.515625, 932.899536) 超出大小的 Piturebox。
通常二极管曲线如下所示:
请问有什么想法吗?