https://bugs.winehq.org/show_bug.cgi?id=51139
--- Comment #24 from stefan.bruens@rwth-aachen.de --- I think I have nailed down the underlying problem.
In case `EndFigure` is called with D2D1_FIGURE_END_OPEN, and the last vertex (point) is coincident with the first one of the figure, later calculations fail.
As the last segment then has an undefined direction and a length of 0, causing the `nan`s seen.
Omitting the last segment when it has zero length fixes the problem. This is already explicitly done when D2D1_FIGURE_END_CLOSED is set.
Anyone who is using openSUSE and wants to give it a try can check: https://download.opensuse.org/repositories/home:/StefanBruens:/branches:/Emu... https://build.opensuse.org/package/show/home:StefanBruens:branches:Emulators...