Задать вопрос
@Fragman

Как правильно построить поле зрения?

Требуется построить поле зрения игрока.
Игрок представляет собой точку радиусом 10, с известными координатами. Также известны координаты куда он смотрит на canvas и его угол обзора. Необходимо начертить его поле зрения. Игрок находится на карте, которое выводится картинкой и в javascipt представлено, как массив пикселей(0 - нет стены, 1 - есть). Необходимо, чтобы поле зрения упиралось в стены карты.
  • Вопрос задан
  • 166 просмотров
Подписаться 2 Сложный Комментировать
Решения вопроса 1
samodum
@samodum
Какой вопрос - такой и ответ
Школьная геометрия.
1) Сначала вычисляем угол, куда (X, Y) игрок (x0, y0) смотрит:
dx = X - x0; dy = Y = y0;
d = sqrt(dx*dx + dy*dy); - длина отрезка
alpha = arccos(dx/d); - вычисляем угол. Здесь нужно будет дополнить, т.к. знак может потеряться. Смотри на dx и dy.

2). Теперь строим угол обзора (betaLeft, betaRight):
betaLeft = alpha - ugObz/2;
betaRight = alpha + ugObz/2;

3). Всё. Теперь вычисляем точки, через которые будет проходить линия обзора:
xL = x0 + cos(betaLeft) * Radius;
yL = y0 + sin(betaLeft) * Radius;
xR = x0 + cos(betaRight) * Radius;
yR = y0 + sin(betaRight) * Radius;

И строишь через эти точки бесконечную линию, чтобы она выходила за пределы экрана. Можешь для этого подобрать Radius такой, чтобы он был больше разрешения экрана
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 10:02
7000 руб./за проект
18 дек. 2024, в 09:56
8000 руб./за проект
18 дек. 2024, в 04:59
1000 руб./в час