-4
私はC#WindowsフォームでBitmapオブジェクトを持っています。このBitmapオブジェクトの原点(ここでは軸の始点)は、左上隅にあります。通常のグラフのように、原点を左下にどのように変更できますか?ありがとうございました!Windowsフォームビットマップの原点を変更するにはどうすればよいですか?
私はC#WindowsフォームでBitmapオブジェクトを持っています。このBitmapオブジェクトの原点(ここでは軸の始点)は、左上隅にあります。通常のグラフのように、原点を左下にどのように変更できますか?ありがとうございました!Windowsフォームビットマップの原点を変更するにはどうすればよいですか?
次の回答のコードを使用して、ピクチャボックス内のY座標を反転できます。
flip coordinates when drawing to control
private void ScaleTransformFloat(PaintEventArgs e)
{
// Begin graphics container
GraphicsContainer containerState = e.Graphics.BeginContainer();
// Flip the Y-Axis
e.Graphics.ScaleTransform(1.0F, -1.0F);
// Translate the drawing area accordingly
e.Graphics.TranslateTransform(0.0F, -(float)Height);
// Whatever you draw now (using this graphics context) will appear as
// though (0,0) were at the bottom left corner
e.Graphics.DrawRectangle(new Pen(Color.Blue, 3), 50, 0, 100, 40);
// End graphics container
e.Graphics.EndContainer(containerState);
// Other drawing actions here...
}
私はそれが可能だとは思いません。任意の起源を使用する独自のクラスを定義し、Bitmapからカスタムオブジェクトにデータをコピーして、それを使って作業することができます。しかし、あなたは 'Bitmap'が提供する多くの機能を失います。 – adv12
まず、何を自分でしようとしましたか? –
これは、Windowsがどのように動作するかを示しています...完全に正直であるようにその方法を使用するのは難しいことではありません。長期的にはこのように慣れていくほうがずっと優れているでしょう。それがすべてのコントロールの仕組みだからです。 –