System.Drawing.Point和System.Drawing.PointF有什么区别

时间:2010-09-17 08:27:01

标签: c# winforms system.drawing

System.Drawing.PointSystem.Drawing.PointF之间有什么区别? 你能举两个这样的例子。

提前致谢。

3 个答案:

答案 0 :(得分:29)

Point使用整数坐标(intX的{​​{1}}。

Y使用浮点数PointF floatX)。

答案 1 :(得分:21)

我认为PointF部分存在是因为System.Drawing.Graphics类支持转换和消除锯齿。例如,您可以在抗锯齿模式下在离散像素x之间绘制一条线。

    private void Form1_Paint(object sender, PaintEventArgs e)
    {
        e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
        Pen pen = Pens.Red;
        // draw two vertical line
        e.Graphics.DrawLine(pen, new Point(100, 100), new Point(100, 200));
        e.Graphics.DrawLine(pen, new Point(103, 100), new Point(103, 200));
        // draw a line exactly in the middle of those two lines
        e.Graphics.DrawLine(pen, new PointF(101.5f, 200.0f), new PointF(101.5f, 300.0f)); ;
    }

它看起来像

this

没有PointF这些功能将受到限制。

答案 2 :(得分:-1)

例如,在某些嵌入式系统中,只支持“System.Drawing.Point”,您应该自己创建“PointF”类型。