Я переношу устаревшее приложение CAD в .NET. Его графические требования не очень сложны, а GDI + с некоторыми оптимизациями имеет хорошую производительность, если вы не делаете никаких причудливых вещей. Однако я также поддержу Direct2D, так как он предлагает лучший опыт и производительность.Графика GDI +/Direct2D и размер всего мира
Моя проблема в том, что старые приложения поддерживали координаты Меркатора, и они просто не вписываются в float, поэтому сбои приложений и GDI + не идут хорошо с экстремальными трансляционными преобразованиями. Я вижу, что Direct2D также использует поплавки.
Так что я должен реализовать пользовательскую матрицу для этого, чтобы перевести и т.д. на экранные координаты? Есть ли другое решение?
Мне нужна двойная точность. Кажется, что autocad также работает с этой точностью. Например, некоторые координаты, хранящиеся в файле, похожи на X: 4355974.24935948 – GorillaApe
Вы имеете в виду САПР или ГИС?Для системы САПР необычно поддерживать абсолютные мировые координаты. В любом случае, если это так, и проблема связана с недостаточной точностью с плавающей точкой, не можете ли вы перевести координаты в локальную систему, чтобы снизить порядок? (то есть вычесть 4355900 или около того, в зависимости от полезного диапазона, чтобы уменьшить количество значащих цифр.) –
Нет, как GDI +, так и Direct2D строго работают с плавающей точкой с одинарной точностью. Вам придется решить эту проблему, обратив больше внимания на вашу проекцию, держась подальше от полюсов на здоровом расстоянии :) –