02.08.2012, 21:09
|
Интересующийся
|
|
Регистрация: 02.08.2012
Сообщений: 12
|
|
Гипотенуза равност. прям. треуг. в двумерном массиве
Я делаю игру. Игровое поле состоит из тайлов - двумерного массива 100х100. Допустим map[0][0] - это начало координат в декартовой системе координат.
Радиус видимости игрока 10 тайлов.
Точка А = map[10][0], точка Б = map[0][10].
Теперь если соединить эти точки между собой и с центром координат, то получится равносторонний прямоугольный треугольник.
Вопрос: как получить список тайлов, по которым проходит гипотенуза этого треугольника?
Просто при перемещении игроку при каждом шаге должен грузиться массив тайлов, которые пересекает гипотенуза. Игрок будет центром координат, но это я уже сам допилю.
|
|
02.08.2012, 22:35
|
|
Профессор
|
|
Регистрация: 21.04.2012
Сообщений: 951
|
|
Sektoid,
Сообщение от Sektoid
|
Теперь если соединить эти точки между собой и с центром координат, то получится равносторонний прямоугольный треугольник
|
игра на шаре что ли?
Сообщение от Sektoid
|
точки между собой и с центром координат
|
центр это map[50][50]? Думаю да чем же еще быть?
Сообщение от Sektoid
|
Точка А = map[10][0], точка Б = map[0][10].
Теперь если соединить эти точки между собой и с центром координат, то получится равносторонний прямоугольный треугольник
|
если это карта 100х100, то не будет не равностороннего, не прямоугольного треугольника
|
|
02.08.2012, 22:51
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Как уж там дальше будете делать неизвестно, но по описанному случаю можно так
var d = 10;
var mas = [];
var str = '';
for (var i = 0; i <= d; i++) {
str = '(' + i + ', ' + (d - i) + ')';
mas.push(str);
}
alert(mas);
|
|
02.08.2012, 22:57
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
bes,
В равнобедренном прямоугольном треугольнике - сумма высоты и ширины с одной точки гипотенузы равна катету
Т.е X+Y=b
Последний раз редактировалось Deff, 03.08.2012 в 00:02.
|
|
02.08.2012, 23:28
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Deff
|
В равнобедренном прямоугольном треугольнике - сумма высоты и ширины с одной точки гипотенузы равна катету
А в произвольном прямоугольном - полусумме катетов
Т.е X+Y=b
|
Deff, эти соотношения напомнили о давно забытом
Что есть ширина (может быть проекция катета на гипотенузу) и высота с одной точки гипотенузы, и как бы я это использовал для вывода значений по диагонали?
|
|
02.08.2012, 23:37
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
bes, ну зная X -узнал У
x = b-y
y= b-x (b - любой из катетов
|
|
02.08.2012, 23:46
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Deff
|
bes, ну зная X -узнал У
x = b-y
y= b-x (b - любой из катетов
|
Да, но что есть x и y?
Если x - это проекция на гипотенузу, а y - высота (перпендикуляр на гипотенузу), то это не проходит (сумма 2 катетов всегда больше гипотенузы).
|
|
03.08.2012, 00:03
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от bes
|
сумма 2 катетов всегда больше гипотенузы).
|
вот твой массив - сложи две цифры
(0, 10),(1, 9),(2, 8),(3, 7),(4, 6),(5, 5),(6, 4),(7, 3),(8, 2),(9, 1),(10, 0)
|
|
03.08.2012, 00:21
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Deff
|
вот твой массив - сложи две цифры
(0, 10),(1, 9),(2, 8),(3, 7),(4, 6),(5, 5),(6, 4),(7, 3),(8, 2),(9, 1),(10, 0)
|
ха-ха, с той фразы до этого было трудно догадаться, я уж начал теоремы вспоминать
|
|
|
|