Как я могу общаться с другим агентом (anylogic) под определенным углом зрения?

Я пытаюсь выполнить моделирование с использованием пешеходной библиотеки Anylogic, где агент (A) будет связываться с другим агентом (B), только если другой агент находится в пределах определенных углов обзора и радиуса дуги A. Обычный способ связи - определить определенное расстояние. общение, основанное на определенном расстоянии, которое образует сферу вокруг агента. Но я хочу смоделировать, что агент не сможет общаться с другими агентами, которые находятся за пределами его угла зрения (например, коническая проекция и определенное расстояние). Например, агент не должен иметь возможность общаться с другими людьми, стоящими за ним. Как я могу это сделать?

Кроме того, я пытаюсь смоделировать поведение отдельных агентов (упомянутых выше пешеходов) с помощью диаграммы состояний агентов. К сожалению, в моей модели состояния агентов не меняются. Это связано с использованием пешеходной библиотеки? Можем ли мы смоделировать поведение пешеходов с помощью диаграммы состояний? Было бы здорово, если бы кто-нибудь ответил на эти вопросы.


person Tariq    schedule 18.05.2020    source источник


Ответы (1)


вы можете использовать только многоугольный узел или область и использовать его следующим образом:  поле зрения

если вы хотите оценить, находится ли пешеход или агент в поле зрения, вам нужно получить x и y для этого агента и выполнить:

if(fieldOfVision.contains(x,y))
//communicate with that dude
person Felipe    schedule 18.05.2020
comment
Большое спасибо Фелипе за ваш ответ! В моей модели, поскольку агенты постоянно перемещаются, как я могу найти значение X и Y, поскольку это не фиксированное значение? Будет полезно, если вы подскажете, как я могу узнать, кто находится внутри этого многоугольного узла. Кроме того, является ли fieldOfVision встроенной функцией? - person Tariq; 18.05.2020
comment
Кроме того, после рисования многоугольного узла в диаграмме состояний агента, как я могу включить информацию об этой области / видении в код? Извините за мой последовательный вопрос. Я не могу устоять перед мнением такого эксперта, как вы. еще раз спасибо. - person Tariq; 18.05.2020
comment
вы сказали в своем вопросе, что вы находите агентов, которые находятся на определенном расстоянии, и на основе этого фильтра вы находите их координаты x, y и проверяете, находятся ли они в поле зрения ... - person Felipe; 18.05.2020