|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
как найти центр квадрата?
Доброго времени суток.Есть такая картинка http://www.delphisources.ru/forum/at...d=133026497 6
Прямоугольник (на картинке он обозначен зеленым) может менятся как по вертикали так и по горизонтали. Возникает вопрос как найти центр прямоугольника? Поиском пикселей пользуюсь scanline-ом. |
#2
|
||||
|
||||
Находим первый зеленый пиксел (лево верх). Находим также право низ (последний зеленый). Получаем 2 точки. Складываем координаты X и делим пополам, складываем Y и делим пополам. Получаем центр.
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
Так ну допустим нахожу я левый верхний пиксель, но по пути будут поподатся другие пиксели этого цвета. Как мне их отсортировать до последнего подходящего пикселя?
|
#4
|
||||
|
||||
На приведенной картинке задача решается элементарно.
Проходим по строкам, запоминаем первый пиксель, который попался зеленого цвета. Потом проходим дальше, и запоминаем зеленые пиксели с максимальными X или Y, сохраняя в переменные XMax и YMax соответствующие координаты. Доходим до конца картинки. Получим 2 точки: одна - первая, другая - с координатами XMax и YMax. Если же картинка другая - то надо выкладывать реальную картинку и думать. jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
||||
|
||||
Здесь получается такая проблема.Максимальные значения нахожу но при переходе с одного модуля в другой у сохраненные данные стираются.Вот код:
Код:
unit center; interface uses windows,sysutils; type TCustomer = Record xmax,ymax : integer; end; procedure kvadrat(x,y:integer); var custRecPtr : ^TCustomer; implementation uses boot; procedure kvadrat(x,y:integer); begin new(custRecPtr); custRecPtr.xmax:=x; custRecPtr.ymax:=y; end; end. |
#6
|
||||
|
||||
Прямоугольник кто рисует?
|