изрисовал пол пачки бумаги.....но сегодня видимо "не день бекхема" ))) натолкните на мысль. итак, необходимо создать некую виртуальную карту помещения. создается она так: идет тело с фотоаппаратом и через каждые 10 метров (в одном случае это может быть 10, в другом 20, в третьем 45) фоткает вокруг себя в 4 стороны: прямо, направо, налево и назад. Ходит он в каком угодно порядке. что мы в итоге получаем: допустим он стоит в точке 1 получается 4 фотки .....вперед1 лево1 1 право1 .....назад1 пошел он допустим вперед, получаем следующее .....вперед2 лево2 2 право2 .....назад2(она же 1 для точки 1) так вот, надо как-то в БД их перевязать....что бы находясь в точке один мы могли сделать вперед1 ссылкой, которая указывала бы на то, что впереди точка 2, справа точка N и т.д. хрен знает, насколько понятно объясняю....ну может кто делал виртуальную карту чего либо...намекните в какую сторону копать, как делать и т.д.... СПАСИБО!
Понятно. Мне кажется, удобно сделать так же, как теги, отдельная таблица, которая связывает две локации, имеет их id-шники. Но т.к. одних id-шников будет не достаточно, чтобы указать, где "вперед", где "влево", то указать ещё и направления Код (Text): id_связи id_локации1 направление id_локации2 направление --------------------------------------------------------------------------------------- 1 1 влево 2 вправо 2 1 вперед 3 назад Слова "влево", "вперед" и др., конечно, заменить на цифры. В БД нужно искать в таблице связей по полям направления движения и по полям "id_локации.." Может, не оптимально. Надо ещё подумать. Стоишь, например, в локации 2. Нужен список всех ссылок. Ищещь в таблице со связями все записи, в которых есть id 2. Будет максимум четыре записи, в которых будут id связей, направления и id следующих локаций.
спасибо за ответ. Надо же еще как-то задать систему координат, по идее "сетка" то должна быть бесконечной.... еще момент...допустим мы стоим в точке 2, фотка вперед у нас есть, а точки вперед уже может не быть, т.е. допустим из точки 2 пошли направо....
Стоим в точке 2, ищем все записи в этой табличке, в которой есть id 2. А нашлась только одна запись (если посмотреть на пример выше). В этой записи указаны две ссылки: "влево" ведёт на страницу id 1 (на левой фотке делаем ссылку a href=), "вправо" ведёт на текущую локацию (значит ссылку делать не надо).
мужики, есть еще какие мыли....я уж было почти придумал....но вылез еще геморой если человек пошел назад, то надо не задом шагать, а развернуть его мол он уже передом идет и в другую сторону То же самое право лево и т.д. и во всех направлениях
Запоминать поворот. Щелкнул, на левую картинку, запомнил в сессии или в куках, что в этот момент был повернут налево.
а потом массив пересортировывать видимо нужно...т.е. допустим идем назад, необходимо чтоб картинка, что была назад стала картинкой вперед.... жесть, бошка уже кругом...ну сука интересно )))
Даже интересно стало, что там трудного. Как-то делал такую "бродилку" на флеше. Отрендерил в 3дс максе панорамы с каждой доступной точки лабиринта, по клику на активные области перемещался. Плюс в таком рендере один - хорошее качество картинок, минус - не играбельно, просто для "поглядеть". Добавлено спустя 1 минуту 24 секунды: А, вспомнил, не по клику по области, а клавишами перемещался. Следующая локация определялась в зависимости от текущего поворота. Добавлено спустя 5 минут 11 секунд: Нашел эту флешку, самих рендеров уже нет, но первый кадр есть, он вшит. Приколись http://files.mail.ru/4J7TB0
да видимо мозгов не хватает таблица точек id forward back right left - forward back right left это адреса картинок впереди сзади сбоков таблица связей id_point pos point id_point - id точки из первой таблицы pos - позиция точки point относительно id_point (1234, впереди сзади справа слева. все путем, все вроде получается, по карте ходим. научились идти назад лицом вперед научились менять лево\право в зависимости от того, идем вперед или назад. теперь надо вот чего: развернуться на месте имеем url /index.html?point_id=3&step=forward#turn точка 3, шагали вперед, она крайняя, далее точки нет, думал так: Все, приехали, тупик<br /><a href="#turn">Развернуться</a> как теперь вот от сюда /index.html?point_id=3&step=forward#turn "дернуть turn??? Код (Text): [QUERY_STRING] => point_id=3&step=forward [REQUEST_URI] => /index.html?point_id=3&step=forward Добавлено спустя 10 минут 40 секунд: с последним отбой, выкрутился
хм..появилась очередная пичалька натолкните на мысль как реализовать следующее: есть 4 направления движения: вперед назад вправо влево. стоит тело, крутится на месте. Если в направлении, в которое он повернут, есть точка, то соответственно он может на нее перейти. как бы мне понять, в какую сторону идет тело? Могу отследить, мол он 2 раза повернулся вправо и пошел, получается что он идет назад!!! думал так, задаю направления: вправо +1, влево -1, вперед 0, назад 2. Повернулся 2 раза вправо, получаю +1+1 = 2, вот и типа назад...но если он третий раз повернутся вправо, получается уже что пойдет налево.... Как вообще отслеживается направление перемещения?
Сектора можно обозначить цифрами как 1, 2, 3 и 4. Определить сектор можно, узнав направление в углах: 1, это +-45° от нуля, 2, это +-45° от 90° и т.д. Вопрос только, как ты можешь узнать угол? У тебя там скролл картинок или что?
http://www.gus-info.ru/virt.php короче вот почти точная копия того что мне нужно сделать....только я повороты гет параметрами передавал, тут как-то все само ворочается, видимо таблица связей сделана по другому....но как, я пока осилить не могу я пишу в таблице связей, мол точка 2 впереди относительно точки 1, но это если мы идем вперед...а если назад....получается наоборот....точка 1 впереди точки 2... тут либо как-то связи писать по другому, либо как-то следить в какую сторону идет юзер