Can anyone explain why, in the .NET framework, there are PointF
structures (using the single-precision float
type) and no "PointD" (using the double-precision double
type)?
Did they establish that such precision would never make sense in the System.Drawing namespace? Is there any other reason?
At the time when GDI+ (the technology which System.Drawing
is based on) was developed, hardware was nowhere near the performance and capability of today, and a Double
-based coordinate system would have imposed a heavy burden on the hardware for very little benefit on the display-end, with displays having the size and resolution that they did. Even with today's monster video cards, we are only this year seeing the ability to do double-precision floating point operations that have acceptable performance, and these are still 1/2 the speed of single-precision ops. So it was a choice of practicality to use Single
types to model the graphics operations.
Today, with WPF, we have a platform which began with an eye toward the next decade or two, and so using Double
to model the coordinate system made sense.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With