Гипотенуза равност. прям. треуг. в двумерном массиве
Я делаю игру. Игровое поле состоит из тайлов - двумерного массива 100х100. Допустим map[0][0] - это начало координат в декартовой системе координат.
Радиус видимости игрока 10 тайлов. Точка А = map[10][0], точка Б = map[0][10]. Теперь если соединить эти точки между собой и с центром координат, то получится равносторонний прямоугольный треугольник. Вопрос: как получить список тайлов, по которым проходит гипотенуза этого треугольника? Просто при перемещении игроку при каждом шаге должен грузиться массив тайлов, которые пересекает гипотенуза. Игрок будет центром координат, но это я уже сам допилю. |
Sektoid,
Цитата:
Цитата:
Цитата:
|
Как уж там дальше будете делать неизвестно, но по описанному случаю можно так
var d = 10; var mas = []; var str = ''; for (var i = 0; i <= d; i++) { str = '(' + i + ', ' + (d - i) + ')'; mas.push(str); } alert(mas); |
bes,
В равнобедренном прямоугольном треугольнике - сумма высоты и ширины с одной точки гипотенузы равна катету Т.е X+Y=b |
Цитата:
Что есть ширина (может быть проекция катета на гипотенузу) и высота с одной точки гипотенузы, и как бы я это использовал для вывода значений по диагонали? |
bes, ну зная X -узнал У
x = b-y y= b-x (b - любой из катетов |
Цитата:
Если x - это проекция на гипотенузу, а y - высота (перпендикуляр на гипотенузу), то это не проходит (сумма 2 катетов всегда больше гипотенузы). |
Цитата:
(0, 10),(1, 9),(2, 8),(3, 7),(4, 6),(5, 5),(6, 4),(7, 3),(8, 2),(9, 1),(10, 0) |
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 15:04. |