День добрый.
А>Столкнулся с непонятной штукой.
А>Почему так происходит:
А>LPtoDP( gc->hDC, pts, 2 );
А>DPtoLP( gc->hDC, pts, 1 );
А>На входе х2 — 602
А>На выходе х2 — 603
А>Откуда берётся еденичка?
К сожалению, ни LPtoDP(), ни LPtoDP() не обратимы. Это связано с округлением при float-преобразованиях. Тоесть — если мы преобразовали некое число x из LP в DP, а потом результат обрытно — то у нас нет никакой гарантии, что мы
снова получим x. Плавающая точка ;(.
Для избежания рекомендуется переделать логику, чтобы она не требовала обратного преобразования либо не зависила от него.
С уважением, Око