Re[3]: Объединение регионов в GDI+ происходит с ошибками
От: Pavel Dvorkin Россия  
Дата: 12.05.06 11:54
Оценка:
Здравствуйте, s_tar, Вы писали:

_>Здравствуйте, ghostrider, Вы писали:

G>>Если не сложно, приведите конкретный пример.

_>VS сейчас под рукой нет, но тестовый пример, на котором проверял есть

_>[ccode]
_> Region r;
_> r.MakeEmpty();

_> r.Union(RectF(0,0,100,100));

_> RectF rect_f;


_> r.GetBounds(&rect_f, &gr);


0,0,100,100


_> r.Union(RectF(0,0,200,10));

_> RectF rect_s;
_> r.GetBounds(&rect_s, &gr);


0,0,200,100
_> // rect_s немного больше rect_f (на несколько десятых)

Во-первых, не немного, а 2 раза — как и должно быть — объединение 0,0,100,100 c 0,0,200,10 дает 0,0,200,100 в качестве объемлющего прямоугольника.

_>Этот эффект заметил при следующих обстоятельствах: группу выделенных объектов обвожу CRectTracker'ом. Для этого получаю регионы всех объектов и объединяю их. Результат налицо, рамка выделения расползается. Сначала думал неправильно пересчитываю координаты, но на контрольном примере то же самое, хотя отклонения меньше.


Проверь свой тест, что-то здесь не то.
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.