Przenoszę starszą aplikację CAD do .NET. Wymagania graficzne nie są zbyt skomplikowane, a GDI + z pewnymi optymalizacjami ma dobrą wydajność, o ile nie robisz żadnych wymyślnych rzeczy. Jednak będę obsługiwał Direct2D, ponieważ zapewnia lepsze wrażenia i wydajność.Grafika GDI +/Direct2D i rozmiar światowy
Mój problem polega na tym, że stare współrzędne Mercatora obsługują aplikacje i po prostu nie mieszczą się w float, więc awarie aplikacji i GDI + nie pasują do ekstremalnych transformacji tłumaczeń. Widzę, że Direct2D używa również float.
Czy powinienem zaimplementować do tego celu niestandardową macierz, aby przetłumaczyć itd. Na współrzędne ekranu? Czy jest jakieś inne rozwiązanie?
Potrzebuję podwójnej precyzji. Wygląda na to, że autocad działa również z tą dokładnością. Na przykład niektóre współrzędne przechowywane w pliku są jak X: 4355974.24935948 – GorillaApe
Masz na myśli CAD lub GIS?Nietypowe jest to, że system CAD obsługuje współrzędne absolutne świata. W każdym razie, jeśli tak jest i problem jest związany z niewystarczającą dokładnością zmiennoprzecinkową, czy nie możesz przetłumaczyć współrzędnych na lokalny system, aby obniżyć rząd wielkości? (tj. odejmij 4355900. lub tak, w zależności od użytecznych wartości, aby zmniejszyć liczbę cyfr znaczących.) –
Nie, zarówno GDI +, jak i Direct2D ściśle współpracują z zmiennoprzecinkową pojedynczą precyzją. Będziesz musiał rozwiązać ten problem, zwracając większą uwagę na swoją projekcję, trzymaj się z dala od biegunów zdrowym marginesem :) –