|
Как Именно Происходит Поиск Точек В Findcolor? |
|
|
nEPCnEKTuBA |
8.2.2010, 9:06
|
Neophyte
Сообщений: 10
Регистрация: 31.1.2010 Группа: Пользователи Наличность: 0
Пользователь №: 12.440
Возраст: 23
|
Всем привет! Я пытаюсь реализовать в программе поиск точек нужного цвета и мне стало интересно в коде я прописываю две кординаты, а каким образом идет этот поиск точки? Я прикрепил примеры В 2х случаях по координатам создается квадрат или прямоугольник и уже в нем идет поиск просто по разным осям, а в 3м случае просто на прямую от одной координаты к другой. Еще как можно сделать так чтоб пока не найдет точку далее действий не происходило? set $a findcolor (10, 100 10, 400 1 1 3355443 %arr 1) set #x %arr [1 1] + 70 set #y %arr [1 2] left #x, #y
|
|
|
|
DarkMaster |
8.2.2010, 10:49
|
Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27721
Пользователь №: 11.279
|
set $a findcolor в $a помещается число найденных совпадений. т.е. можно сделать примерно так:
set $a 0
while $a = 0 set $a findcolor (10, 100 10, 400 1 1 3355443 %arr 1) set #x %arr [1 1] + 70 set #y %arr [1 2] left #x, #y end while
Сам наступал на грабли, так что еще несколько тонкостей использования команды: 1) Если вторая координата 100, 400, то последний поиск будет в 99, 399. По абсциссе 100 и ординате 400 поиск не будет происходить вообще. 2) Если задать начальную и конечную координату одинаковую хотя бы для одной из осей, то поиска не будет вообще. Например: 10, 100 и 10, 200 поиска не будет вообще 10, 100 и 11, 200 скрипт просканирует линию толщиной в 1 точку с началом 10, 100 и концом 10, 199. 3) Если утащить окно за область экрана координаты при нахождении будут меньше реальных, а при сильном смещении за экран скрипт выдаст ошибку.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
nEPCnEKTuBA |
8.2.2010, 11:24
|
Neophyte
Сообщений: 10
Регистрация: 31.1.2010 Группа: Пользователи Наличность: 0
Пользователь №: 12.440
Возраст: 23
|
Спасибо за ответ, еще я заметил что если 1я кордината в верхней левой части а 2я в нижней правой части экрана, то сканирование идет по линии Х с лева на право, сверху в низ. Как на картинке 1й вариант. Может кому то пригодится (IMG: style_emoticons/default/smile.gif) Ошибку выдавало, исправил на set $a 0 while $a = 0 set $a findcolor (10, 100 11, 400 1 1 3355443 %arr 1) end while set #x %arr [1 1] + 70 set #y %arr [1 2] left #x, #y
|
|
|
|
DiabloKiller |
15.8.2010, 16:51
|
Registred
Сообщений: 6
Регистрация: 15.8.2010 Группа: Пользователи Наличность: 0
Пользователь №: 12.928
|
Возникает проблема с перебором точек он отказывается проверять каждую 10 и так далее он проверяет каждыйпиксель. и разницы между set $a FindColor (700, 350 750, 375 10 10 4376097 %arr 1) и между set $a FindColor (700, 350 750, 375 1 1 4376097 %arr 1) по времени не обнаружено (IMG: style_emoticons/default/sad.gif). Прописывать через фор не хотелось бы уверен будет медленее работать. Помогите пожалуйсто.
|
|
|
|
kellas |
24.1.2011, 15:25
|
Novice
Сообщений: 76
Регистрация: 22.8.2010 Группа: Пользователи Наличность: 0
Пользователь №: 12.943
Возраст: 27
|
Цитата(DarkMaster @ 24.1.2011, 14:36) то что там написано мне знакомо с этим и работал в данный момент времени нужно что бы клик происходил там где цвет не константа где появится мигалка и какого цвета она будет мне не известно а вариаций больше милиона цветов грубо говоря вот я и подумал мож кто знает как сделать так чтоб кликало там где цвет постоянно меняется
|
|
|
|
kellas |
24.1.2011, 20:23
|
Novice
Сообщений: 76
Регистрация: 22.8.2010 Группа: Пользователи Наличность: 0
Пользователь №: 12.943
Возраст: 27
|
та думал может что новенькое появилось)
есть заданная область которая задается двумя координатами в ней может мигать лампочка разными желтыми оттенками ранее я использовал финдколор и ждал пока не появится нужный мне цвет в данный момент все изменилось теперь эта лампочка может быть с оттенками любого цвета т.е. или 200 000 цветов красного или 200 000 цветов синего и т.д. одним словом финдколор тут уже не поможет поскольку уже нет одного цвета который присутствовал бы во всех лампочках а таких вариаций слишком много вплоть до серобуромалинового(((( осталось ток условие что лампочка плавно загорается и тухнет вот я и надеялся мож есть что то новенькое есть))))
единственное что пока пришло в голову эт надо чтоб в заданной области с определенным шагом брался цвет в точке и через 0,5 сек сравнивал этот цвет стойже точкой на предмет совпадения если не совпал то срабатывает код а если совпал то игнорируется действие т.е. идет дальше сравнение других точек не знаю как с шагом сделать это ну в крайнем случаи можно каждую точку прописать и всплывает вторая делема если он так каждую точку сравнивать будет то на это уйдет много времени отсюда выплывает что надо чтоб он во всех точках в последовательности запомнил цвета и потомже в тойже последовательности их сравнивал на предмет совпадения после короткой паузы ..это время которое дается чтоб лампочка поменяла свой цвет
X1,Y1____X2,Y1____X3,Y1 X1,Y2____X2,Y2____X3,Y2 X1,Y3____X2,Y3____X3,Y3
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|