bugfix> c# > 投稿

私は Array を持っています Point のそして私はそれを Rectangle にしたい 。
4つのポイントがあります。これらのポイントを Polygon として描画します出力は Rectangle です 。
これら4つのポイントを Rectangle として描画するにはどうすればよいですか ?
つまり、これらのポイントの幅と高さを取得したいのです。

これらは私の4つのポイントです。

p1 :48.5, 196.5
 p2 :997.5, 196.5
 p2 :997.5, 692.5
 p2 :48.5, 692.5

だから私はこのようなものが欲しい:

RectangleF rec = new RectangleF(x, y, width, hight);

私の x および yp1.x です、 p1.y
これらのポイントから幅と高さを取得するにはどうすればよいですか?

RectangleF rec = new RectangleF(p1.x, p1.y, width, hight);

回答 2 件
  • 仮定して:

    Point p1 = new Point(48.5, 196.5);
    Point p2 = new Point(997.5, 196.5);
    Point p3 = new Point(997.5, 692.5);
    Point p4 = new Point(48.5, 692.5);
    
    

    次のように四角形を作成できます。

    RectangleF rec = new RectangleF(p1.X, p1.Y, p2.X - p1.X, p3.Y - p1.Y);
    
    

  • GraphicsPath()を使用した代替ソリューション

    using (GraphicsPath path = new GraphicsPath())
    {
        PointF[] points = new PointF[] {
        new PointF(48.5f, 196.5f),
        new PointF(997.5f, 196.5f),
        new PointF(997.5f, 692.5f),
        new PointF(48.5f, 692.5f),
        };
        path.StartFigure();
        path.AddPolygon(points);
        path.CloseFigure();
        e.Graphics.DrawPath(new Pen(Color.Black, 2), path);
    };
    
    

あなたの答え