В .NET Framework, почему есть PointF (float) и нет "PointD" (double)?

Может ли кто-нибудь объяснить, почему в .NET Framework существуют структуры PointF (с использованием типа single-precision float) и нет "PointD" (с использованием типа двойной точности double)?

Установили ли они, что такая точность никогда не будет иметь смысла в пространстве имен System.Drawing? Есть ли другая причина?

Ответ 1

В то время, когда был разработан GDI + (технология, основанная на System.Drawing), аппаратное обеспечение нигде не было рядом с производительностью и возможностями сегодняшнего дня, а система координат, основанная на Double, наложила тяжелое бремя на аппаратные средства для очень мало пользы на дисплее, с дисплеями, имеющими размер и разрешение, которые они сделали. Даже с сегодняшними монстрами видеокарты, мы только в этом году видим возможность делать операции с плавающей запятой с двойной точностью, которые имеют приемлемую производительность, и это все еще на 1/2 скорости операций с одной точностью. Поэтому для моделирования графических операций был выбор практичности использования типов Single.

Сегодня, с WPF, у нас есть платформа, которая начиналась с глаз до следующего десятилетия или двух, и поэтому использование Double для моделирования системы координат имело смысл.