Поиск сообщества
Показаны результаты для тегов 'rectf'.
Найдено: 2 результата
-
Часто при отрисовке битмапа на холсте используется метод DrawBitmap, где, в частности, в качестве аргумента необходимо указать прямоугольные области источника (SrcRect) и приемника (DestRect). Эти прямоугольники имеют формат записи (Left, Top, Right, Bottom). При указании в качестве SrcRect всего битмапа целиком как здесь на формуме так и в книге Осипова я встречал такую запись: RectF(0,0,ABitmap.Width,ABitmap.Height) Но моя логика подсказывает, что такой битмап должен иметь размеры на 1 пиксель по горизонтали и вертикали больше, чем на самом деле, ведь первый пиксель имеет координаты (0;0), а последний (ABitmap.Width,ABitmap.Height). Что, наверное, приводит к искажениям при отображении битмапа на холсте. Мне думается, что при рисовании целого битмапа следует писать так: RectF(0,0,ABitmap.Width-1,ABitmap.Height-1) Прав ли я или не прав? Если нет, то почему?
-
Embarcadero® RAD Studio XE6 Version 20.0.16277.1276 Не работает функция пересечения двух прямоугольников. Пытаюсь найти прямоугольник пересечения функцией IntersectRectF. Пример кода: var R1, R2, ResRect: TRectF; begin R1 := RectF(6, 3, 3, 6); R2 := RectF(8, 5, 5, 8); if IntersectRectF(ResRect, R1, R2) then begin ShowMessage(FloatToStr(ResRect.Left) + ' ' + FloatToStr(ResRect.Top) + ' '+FloatToStr(ResRect.Right) + ' ' + FloatToStr(ResRect.Bottom)); end; end; Функция возвращает False и в ResRect присваивается значениям 0. Хотя очевидно что есть пересечение в виде квадрата 1 на 1. Как можно еще найти пересечение прямоугольников типа TRectF?