私は四角形の集合を描画しようとしていますが、最初は四角形の原点(0,0)が左上隅にあり、右下隅からレンダリングするように四角形を入れました。 座標をフリップするコードはありませんが、winformには何も表示されません。矩形の集合を描画するときのフリップ座標
私はTranslateTransformのHeight属性が間違っていることを知っています。私は二次元の四角形の集合を描こうとしているので、高さが必要な理由は分かりません。
まだ使用していない高さ属性をハードコーディングしようとしました。
public void ScaleTransformFloat(PaintEventArgs e,List<Square> lstSquare)
{
int Height = 10;
// 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
//User-defined function to draw a square
DrawSquare(e,lstSquare);
// End graphics container
e.Graphics.EndContainer(containerState);
}
四角
public void DrawSquare(PaintEventArgs e,List<Square> lstSquare)
{
foreach(Square s in lstSquare){
e.Graphics.DrawRectangle(Pens.Black, 0,0 ,s.m_Side, s.m_Side);
}
}
a)なぜ描画オブジェクトを変換するだけで、複雑になります。 b)DrawSquareは(0,0)ですべてを描画します。これまでに行ったことにかかわらず、すべての四角形がお互いに並んでいます。 – TaW
これは実際には図形の最初の割り当てです。最初はすべての四角形が左上からレンダリングされていて、左下からレンダリングしたかったのです。私は左下から四角形をレンダリングするのに役立つ[リンク](http://stackoverflow.com/questions/1485745/flip-coordinates-when-drawing-to-control))に出くわしました。しかし、何も表示されていません。私は2d sqaureのセットを描いているので高さが必要な理由を知りたかった – dilip
高さは3d高さではありません。これは、描画するターゲットコントロールの高さの合計です。 画像を左上隅に向かって一番上に紙を裏返しにします。今度はそれを下に移動する必要があります。しかし、どんな距離で?回答:用紙サイズ.. – TaW