2010-09-17 75 views
17

Sự khác nhau giữa System.Drawing.PointSystem.Drawing.PointF là gì. Bạn có thể đưa ra ví dụ giữa hai điều này không.Sự khác nhau giữa System.Drawing.Point và System.Drawing.PointF

Xin cảm ơn trước.

+1

Kiểm tra msdn cho [Point] (http://msdn.microsoft.com/en-us/library/system.drawing.point.aspx) và [PointF] (http://msdn.microsoft.com/vi -us/library/system.drawing.pointf.aspx) và đặc biệt so sánh kiểu dữ liệu của các thuộc tính X và Y. –

+1

Tại sao lại là downvote? Câu hỏi có vẻ như một cái gì đó mà OP có thể tự nhận ra, ít nhất là phần "khác biệt". –

Trả lời

19

Tôi nghĩ rằng PointF tồn tại một phần vì System.Drawing.Graphics lớp hỗ trợ chuyển đổi và chống răng cưa. Ví dụ: bạn có thể vẽ một đường giữa pixelx rời rạc trong chế độ chống răng cưa.

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)); ; 
    } 

và nó sẽ trông giống như

this

mà không PointF những chức năng sẽ bị hạn chế.

+0

Đây là một ví dụ điển hình. Cảm ơn tia – Rye

26

Point sử dụng tọa độ nguyên (int cho XY).

PointF sử dụng dấu phẩy động (float cho XY).

+0

Cảm ơn bạn đã phản hồi. Nhưng tôi có thể sử dụng 'PointF' ở đâu? – Rye

+1

Trong hầu hết tất cả các phương thức trên 'System.Drawing.Graphics'. Ví dụ, 'Graphics.DrawLine' có thể lấy tham số' Point' hoặc 'PointF'. – Timwi

+0

@Timwi cảm ơn, vì vậy PointF không thể được sử dụng trên các thuộc tính kiểm soát người dùng? ví dụ 'Vị trí'? – Rye

-1

Ví dụ: Trong một số hệ thống nhúng, chỉ hỗ trợ "System.Drawing.Point", bạn nên tự mình tạo "PointF".

Các vấn đề liên quan