Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Гипотенуза равност. прям. треуг. в двумерном массиве (https://javascript.ru/forum/misc/30396-gipotenuza-ravnost-pryam-treug-v-dvumernom-massive.html)

Sektoid 02.08.2012 21:09

Гипотенуза равност. прям. треуг. в двумерном массиве
 
Я делаю игру. Игровое поле состоит из тайлов - двумерного массива 100х100. Допустим map[0][0] - это начало координат в декартовой системе координат.
Радиус видимости игрока 10 тайлов.
Точка А = map[10][0], точка Б = map[0][10].
Теперь если соединить эти точки между собой и с центром координат, то получится равносторонний прямоугольный треугольник.
Вопрос: как получить список тайлов, по которым проходит гипотенуза этого треугольника?
Просто при перемещении игроку при каждом шаге должен грузиться массив тайлов, которые пересекает гипотенуза. Игрок будет центром координат, но это я уже сам допилю.

Dim@ 02.08.2012 22:35

Sektoid,
Цитата:

Сообщение от Sektoid
Теперь если соединить эти точки между собой и с центром координат, то получится равносторонний прямоугольный треугольник

игра на шаре что ли?:blink:
Цитата:

Сообщение от Sektoid
точки между собой и с центром координат

центр это map[50][50]? Думаю да чем же еще быть?
Цитата:

Сообщение от Sektoid
Точка А = map[10][0], точка Б = map[0][10].
Теперь если соединить эти точки между собой и с центром координат, то получится равносторонний прямоугольный треугольник

если это карта 100х100, то не будет не равностороннего, не прямоугольного треугольника ;)

bes 02.08.2012 22:51

Как уж там дальше будете делать неизвестно, но по описанному случаю можно так
var d = 10; 
var mas = [];
var str = '';
for (var i = 0; i <= d; i++) {
	str = '(' + i + ', ' + (d - i) + ')';
	mas.push(str);
}
alert(mas);

Deff 02.08.2012 22:57

bes,
В равнобедренном прямоугольном треугольнике - сумма высоты и ширины с одной точки гипотенузы равна катету
Т.е X+Y=b

bes 02.08.2012 23:28

Цитата:

Сообщение от Deff
В равнобедренном прямоугольном треугольнике - сумма высоты и ширины с одной точки гипотенузы равна катету
А в произвольном прямоугольном - полусумме катетов
Т.е X+Y=b

Deff, эти соотношения напомнили о давно забытом :)
Что есть ширина (может быть проекция катета на гипотенузу) и высота с одной точки гипотенузы, и как бы я это использовал для вывода значений по диагонали?

Deff 02.08.2012 23:37

bes, ну зная X -узнал У
x = b-y
y= b-x (b - любой из катетов

bes 02.08.2012 23:46

Цитата:

Сообщение от Deff
bes, ну зная X -узнал У
x = b-y
y= b-x (b - любой из катетов

Да, но что есть x и y?
Если x - это проекция на гипотенузу, а y - высота (перпендикуляр на гипотенузу), то это не проходит (сумма 2 катетов всегда больше гипотенузы).

Deff 03.08.2012 00:03

Цитата:

Сообщение от bes
сумма 2 катетов всегда больше гипотенузы).

вот твой массив - сложи две цифры
(0, 10),(1, 9),(2, 8),(3, 7),(4, 6),(5, 5),(6, 4),(7, 3),(8, 2),(9, 1),(10, 0)

bes 03.08.2012 00:21

Цитата:

Сообщение от Deff
вот твой массив - сложи две цифры
(0, 10),(1, 9),(2, 8),(3, 7),(4, 6),(5, 5),(6, 4),(7, 3),(8, 2),(9, 1),(10, 0)

ха-ха, с той фразы до этого было трудно догадаться, я уж начал теоремы вспоминать :)

Deff 03.08.2012 00:23

Цитата:

Сообщение от bes
ха-ха, с той фразы

Седни день такой - см :D топик => http://javascript.ru/forum/misc/3037...u-storonu.html


Часовой пояс GMT +3, время: 12:22.