Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.02.2010, 16:19
Интересующийся
Отправить личное сообщение для FladeX Посмотреть профиль Найти все сообщения от FladeX
 
Регистрация: 06.02.2010
Сообщений: 20

Транспортная задача (графы)
Нужно реализовать следующий функционал:
1. Графический редактор, позволяющий создавать план дома / коттеджа.
2. Решение для созданного плана транспортной задачи - то есть нахождение оптимальной траектории (самой короткой, но при этом удовлетворяющей некоторым условиям).

Сейчас вопрос насчет первой части - как это реализовывать?

Самая первая идея - сделать таблицу в html, в которой каждая ячейка - это квадратный метр дома, а рамки ячейки - стены. Соответственно по кликам на рамки нужно менять их статус, но вроде такое не реализуется в javascript.
Тогда вторая идея - каждый элемент плана представлять в виде ячейки таблицы. Итого получается несколько возможных представлений - точка, вертикальная линия, горизонтальная линия и пустая ячейка. Но при этом html код разростается до ужасных размеров. Для примера я сделал план размером 2*2 - http://forumcatalog.ru/d/ - наведите мышкой на "стены", они изменят цвет (это только для наглядности).

Так как же мне быть? Каким способом реализовать? Или лучше вообще использовать другой язык программирования?
Ответить с цитированием
  #2 (permalink)  
Старый 06.02.2010, 16:43
Аспирант
Отправить личное сообщение для PepeL Посмотреть профиль Найти все сообщения от PepeL
 
Регистрация: 30.09.2009
Сообщений: 61

Вообще для рисования предусмотрены такие вещи как canvas, vml, svg.
Ответить с цитированием
  #3 (permalink)  
Старый 06.02.2010, 16:53
Интересующийся
Отправить личное сообщение для FladeX Посмотреть профиль Найти все сообщения от FladeX
 
Регистрация: 06.02.2010
Сообщений: 20

С canvas я уже работал в принципе, но это не то. Нужно максимально упростить задачу составления плана, то есть в идеале чтобы был кликовый интерфейс - кликнул на рамку, она обозначилась как стена ну и т.д.

Но на всякий случай сейчас почитаю документацию, спасибо за ответ.
Ответить с цитированием
  #4 (permalink)  
Старый 06.02.2010, 17:59
Интересующийся
Отправить личное сообщение для FladeX Посмотреть профиль Найти все сообщения от FladeX
 
Регистрация: 06.02.2010
Сообщений: 20

Поясню: мне не только нарисовать надо, мне надо передать полученные данные в php-обработчик для дальнейшей работы с задачей. То бишь вариант "просто нарисовать" не подходит, тут вообще можно не рисовать, а просто кликая на переключатели переставить их в нужные состояния.

Насчёт vml - не подходит, ибо у меня линукс. Насчёт svg - не подходит, ибо это значительно усложнит задачу (придется работать с xml, который еще и построить надо с помощью графического редактора).
Ответить с цитированием
  #5 (permalink)  
Старый 07.02.2010, 01:42
Аспирант
Отправить личное сообщение для PepeL Посмотреть профиль Найти все сообщения от PepeL
 
Регистрация: 30.09.2009
Сообщений: 61

Если у вас будут только горизонтальные и вертикальные линии, то можно попробовать строить все блоками с абсолютным позиционированием. Но такие планы обычно для типовых квартир.
Вообще не очень понятна идея того что вы хотите сделать.
Ответить с цитированием
  #6 (permalink)  
Старый 07.02.2010, 01:49
Интересующийся
Отправить личное сообщение для FladeX Посмотреть профиль Найти все сообщения от FladeX
 
Регистрация: 06.02.2010
Сообщений: 20

Нужно составить план коттеджа и отметить на нём две точки - точка, куда подводится кабель и точку, которую к нему надо подключить. Далее нужно найти оптимальную траекторию такого подключения, учитывая, что она должна быть минимально возможной длины и не может проходить сквозь некоторые конструкторские элементы (например, окна).
Ответить с цитированием
  #7 (permalink)  
Старый 07.02.2010, 22:41
Аспирант
Отправить личное сообщение для PepeL Посмотреть профиль Найти все сообщения от PepeL
 
Регистрация: 30.09.2009
Сообщений: 61

А на сам план то можно посмотреть ?
Ответить с цитированием
  #8 (permalink)  
Старый 07.02.2010, 22:47
Интересующийся
Отправить личное сообщение для FladeX Посмотреть профиль Найти все сообщения от FladeX
 
Регистрация: 06.02.2010
Сообщений: 20

План - динамическая часть, ее нужно вводить в программу. То бишь нет какого-то определенного заданного плана - при каждом сеансе работы со скриптом пользователь составляет новый план, а затем расчет ведется уже с этим планом.
Ответить с цитированием
  #9 (permalink)  
Старый 07.02.2010, 23:57
Аспирант
Отправить личное сообщение для PepeL Посмотреть профиль Найти все сообщения от PepeL
 
Регистрация: 30.09.2009
Сообщений: 61

Мне кажется вам стоит как раз начать с того чтобы найти какой-нибудь план, какого-нибудь дома. То есть поставить себя на место того самого пользователя, а то так получается что вы пытаетесь сделать то что сами не очень понимаете. Я хочу сказать, что в плане могут быть не только вертикальные и горизонтальные линии, но и наклонные. Поэтому все таки прийдеться использовать canvas и vml ... либо же есть такая библиотека "рафаель" вроде ... она как раз обьединяет в себе и то и другое. Может так же стоит посмотреть в сторону flash.
Хотел поинтересоваться почему вы хотите производить расчеты на стороне сервера?
Ответить с цитированием
  #10 (permalink)  
Старый 08.02.2010, 01:39
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

Цитата:
Мне кажется вам стоит как раз начать с того чтобы найти какой-нибудь план, какого-нибудь дома.
А мне кажется что существуют определённые задачи, которые лучше не пытаться решать определёнными методами. Иногда лучше где нибуть отверстие сделать чем по стенам под плинтус ховать.
__________________
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
Самые главные в жизни вещи - не вещи! (было написано на одном гараже =)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача "Пересечение сторон фигуры линией в одной точке" lh2030 Общие вопросы Javascript 9 11.03.2011 20:03
помощь новичку - задача вывода содержимого нескольких страниц в одну новую samurau AJAX и COMET 2 03.11.2009 19:07
Задача подсчитать суммы каталога osv Общие вопросы Javascript 2 30.07.2009 05:24
Простенькая задача =) Reddemin Общие вопросы Javascript 8 05.12.2008 16:25
Регулярные выражения задача посложнее faunder Общие вопросы Javascript 5 15.09.2008 14:17