2016-10-06 7 views
-4

私はC#WindowsフォームでBitmapオブジェクトを持っています。このBitmapオブジェクトの原点(ここでは軸の始点)は、左上隅にあります。通常のグラフのように、原点を左下にどのように変更できますか?ありがとうございました!Windowsフォームビットマップの原点を変更するにはどうすればよいですか?

+0

私はそれが可能だとは思いません。任意の起源を使用する独自のクラスを定義し、Bitmapからカスタムオブジェクトにデータをコピーして、それを使って作業することができます。しかし、あなたは 'Bitmap'が提供する多くの機能を失います。 – adv12

+0

まず、何を自分でしようとしましたか? –

+1

これは、Windowsがどのように動作するかを示しています...完全に正直であるようにその方法を使用するのは難しいことではありません。長期的にはこのように慣れていくほうがずっと優れているでしょう。それがすべてのコントロールの仕組みだからです。 –

答えて

1

次の回答のコードを使用して、ピクチャボックス内の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... 
} 
関連する問題