私は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
、曲線の基にしたいスケールです...通常、X軸の値が-2と+2の間にある場合、X軸の値が描画されることを意味するのは+2であり、現在のY軸の値はたとえば、それらが -10 micro から +10 u の間の場合に描画されます
このメソッドをできるだけスタンドアロンにしたいので、ピクチャボックスのサイズを変更すると、スケールが正しく更新されます。
これはたとえば、実際の値 (-0.6375, -0.00000993375) の最初のデータ ポイントであり、私のメソッドはそれを (24.515625, 932.899536) に変換します。
通常、ダイオード曲線は次のようになります。
アイデアはありますか?