System.Drawing.Point
和System.Drawing.PointF
之间有什么区别?
你能举两个这样的例子。
提前致谢。
答案 0 :(得分:29)
Point
使用整数坐标(int
和X
的{{1}}。
Y
使用浮点数PointF
float
和X
)。
答案 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)); ;
}
它看起来像
没有PointF
这些功能将受到限制。
答案 2 :(得分:-1)
例如,在某些嵌入式系统中,只支持“System.Drawing.Point”,您应该自己创建“PointF”类型。