Author Topic: вопросы  (Read 1866 times)

0 Members and 1 Guest are viewing this topic.

scat

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
вопросы
« on: April 12, 2018, 10:31:21 AM »
№1 есть треугольник

 как сделать условие которое  срабатывает  если найдены все 3 пикселя на вершинах
как кто так?    if (pxl(738,445)=914939) & (799,547)=3600122) & (674,543)=61178)

№2 есть радар

как его про сканировать и в случаи нахождения красного круга повернутся в его сторону
кликнуть по кругу нельзя

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Re: вопросы
« Reply #1 on: April 12, 2018, 11:13:00 AM »
Лучше разнеси на каскад из IF.
Читать удобней и в количестве скобок не запутаешься.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: вопросы
« Reply #2 on: April 12, 2018, 11:23:55 AM »
1. if( (pxl(738,445)=914939) & (pxl(799,547)=3600122) & (pxl(674,543)=61178))

2. В чём конкретно проблема? Найти круг (маркер) или повернуться. Чем "поворачиваться"?
Можно найти круг. Центр должен быть известен. Вычислить азимут на маркер (на скрине ~130 градусов).
Вопрос как контролировать поворот. Или вычислить соответствие времени (нажатия?) с углом поворота, что не всегда надёжно или контролировать постоянно положение.
Во втором случае проще тогда определить маркер, сравнением понять слева он от центра или справа чтобы выбрать направление. И начать поворачивать при этом в цикле проверяя что маркер достиг нужной зоны вверху по центру.


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: вопросы
« Reply #3 on: April 12, 2018, 11:24:50 AM »
Нет, вот так правильно
Code: (clickermann) [Select]
IF((PXL(738,445)=914939) & (PXL(799,547)=3600122) & (PXL(674,543)=61178))
 

Вот есть такой скрипт для расчета угла по двум точкам
Code: (clickermann) [Select]
$x1 = 100 // первая координата (Центр треугольника)
$y1 = 100

$x2 = 600 // Вторая координата (Круг)
$y2 = 600

// Расчет угла
$q =  ARCcos((-1)*($y2-$y1)/Sqrt(POW(($x2-$x1),2)+POW(($y2-$y1),2)))
IF($x2 < $x1)
   $q =  360 - $q
END_IF
$q = int($q)

LOGWRITE ("угол = ", $q, " град.")

В переменную $q возвращается значение угла.
Получая значение угла по условию можно поворачиваться (не знаю как там ты это делаешь) пока значение не войдет в нужный диапазон.

scat

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: вопросы
« Reply #4 on: April 12, 2018, 01:11:16 PM »
попробую уточнить
никого
появился красный круг
поворот временем  нажатия клавиши (так как мышь не работает)
слежение


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: вопросы
« Reply #5 on: April 12, 2018, 01:21:48 PM »
Это немного другое. Вращается центральный маркер, а не поворачивается весь радар.
Тогда здесь основная сложность правильно определить положение треугольника, обычно они довольно маленькие, сглаженные и нестабильные.
Нужны скрины, чтобы понять возможно или нет. На кошках показывать здесь не получится.

Скрины только не сжатые, лучше png