Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

куда щелкнул юзер? [D5, D7]


Centr ©   (2004-11-18 08:53:00) 

Доброго всем!
есть Image в него загружена картинка с цветными облястями и черными границами,  в качестве примера:

image1.Canvas.Brush.Color:=clRed;
image1.Canvas.Ellipse(rect(10,10,50,50));
image1.Canvas.Brush.Color:=clGreen;
image1.Canvas.Rectangle(rect(10,70,50,110));


надо узнать щелкнул ли юзверь по элипсу или квадрату, к цвету привязку делать не стоит т.к. он может меняется.
Реально области намного сложнее.

Заранее всем спасибо


Centr   (2004-11-29 11:33:00) [1]


> Разве ты их не сам задаешь при построении региона?

извини :(
но я действительно их не сам задаю,
я нашел функцию которая анализирует ч/б картинку и по ней создает регион.
я этот регион записываю в файл, а потом этот файл записываю опять в регион когда надо и отрисовываю.
Проблема в том, что рисуется он точно таким же (по размерам и местоположению) каким был когда его сохраняли.


Анонимщик   (2004-11-26 15:04:00) [2]

Ты меня прямо разочаровываешь. До каких еще координат? Разве ты их не сам задаешь при построении региона?


Centr   (2004-11-26 11:47:00) [3]

все это понятно, как добраться до этих самых координат


Анонимщик   (2004-11-23 11:38:00) [4]

Пусть координаты вершин: (Xi, Yi), i=1,N - N вершин короче говоря. Тогда координаты вершин уменьшенного многоугольника:

X'i = Alpha*(Xi-Xc) + Xc; Y'i = Alpha*(Yi-Yc) + Yc;

Xc, Yc - центр масс многоугольника. Поскольку ник у тебя соответствующий, то вычисли его сам.
Alpha может принимать любые действительные значения.


Centr   (2004-11-23 09:47:00) [5]


> сделать преобразование координат для тебя

про вывод все просто есть ф-ция PaintRgn, про попадание тоже есть ф-ция PtInRegion, но проблема в том что регион рисуется точно такой же и точно там же откуда он был определен (я его определил программно из картинки и записал в файл), мне теперь надо его уменьшить и нарисовать в другом месте.
Вот этого я НЕ МОГУ. Не дорос еще, а нужно просто позарез.
Есть ф-ция GetRgnBox, которая возвращает Rect региона, но нет ф-ции SetRgnBox :((


Анонимщик   (2004-11-22 10:46:00) [6]

Тю.
Раз ты уже и с попаданием разобрался, то сделать преобразование координат для тебя - пустяк.


Centr   (2004-11-22 05:57:00) [7]

про то как создать регион и определить точку попала или нет разобрался.
надо уменьшить этот регион, и нарисовать его в заданных координатах


Анонимщик   (2004-11-19 15:22:00) [8]

Так тебе еще и контуры выделить нужно? А потом определить, входит ли данная точка внутрь области, ограниченной контуром? И что за масштабирование и установка?


Centr   (2004-11-19 03:34:00) [9]

нашел хорошую статью про регионы
http://www.realcoding.net/article409.html,
также нашел код который из черно-белого битмапа делает регион,
но никак не могу найти функции для масштабирования и установки региона в нужную позицию


[lamer]Barmaglot   (2004-11-18 11:20:00) [10]

Нет, у меня с английским нормально, так что других ссылок у меня нет...Просто берешь название ф-ции и ищещь в инете... Долго, но если приспичело...

P.S. Кстати программист без знания английского - это нонсенс...


Centr   (2004-11-18 11:12:00) [11]


> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/regions_6o6r.asp
>
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlusreference/flatregion.asp


а может че нить на русском есть
ну плохо у меня с англицким :(


[lamer]Barmaglot   (2004-11-18 09:50:00) [12]

RTFM?

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/regions_6o6r.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlusreference/flatregion.asp


Centr   (2004-11-18 09:45:00) [13]


> PtInRegion?


а как этот регион задать,
желательно чтоб программно


[lamer]Barmaglot   (2004-11-18 09:38:00) [14]

PtInRegion?


Наверх

Титульная страница Поиск, карта сайта Написать письмо