Ближайшие отрезки к точке. |
Здравствуйте, гость ( Вход | Регистрация )
Ближайшие отрезки к точке. |
ViGOur |
6.2.2013, 16:46
Сообщение
#1
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Исходные данные:
Массив линий ( начало(x, y), конец(x, y) ) Массив точек (x, y) Массив линий это план этажа, кабинеты, коридоры, двери, окна и ... Другими словами все то, что архитектор начертил бы на бумаге. Точки - координаты внутри кабинетов (только внутри кабинетов). Нужно построить кабинеты имея исходные данные! p.s. сам ломаю голову как это сделать. |
|
|
Litkevich Yuriy |
6.2.2013, 16:55
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
а что из себя представляют линии?
У них есть абсолютные координаты или только длины? |
|
|
ViGOur |
6.2.2013, 16:58
Сообщение
#3
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Линии разумеется имеют координаты по двум точкам: начало(x, y), конец(x,y).
Поправил немного задачу... |
|
|
Iron Bug |
6.2.2013, 17:38
Сообщение
#4
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
я не понимаю, в чём тут смысл задачи. если координаты известны - сортируем и точки, и линии по осям - и вперёд, с песнями. или тут какой-то подвох?
|
|
|
Алексей1153 |
6.2.2013, 18:46
Сообщение
#5
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
да, чего-то в ТЗ не хватает )
берёшь и строишь все линии, а зачем нужны точки внутри кабинетов - непонятно upd о, название не сразу увидел - " Ближайшие отрезки к точке." ну так это - строишь через точку нормаль к прямой, находишь пересечение , а потом длину отрезка нормали. Где будет мЕньшая по длине нормаль - та линия ближе к точке Сообщение отредактировал Алексей1153 - 6.2.2013, 18:46 |
|
|
ViGOur |
6.2.2013, 21:50
Сообщение
#6
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
я не понимаю, в чём тут смысл задачи. если координаты известны - сортируем и точки, и линии по осям - и вперёд, с песнями. или тут какой-то подвох? Тогда нужно будет и углы относительно точки рассчитывать, все линии по разному могут быть расположены, к тому же есть линии обозначающие положение дверей и окон...ну так это - строишь через точку нормаль к прямой, находишь пересечение , а потом длину отрезка нормали Все то же, как и в моем ответе Iron Bug.Я думал об этом варианте (в принципе вы предложили одно и то же, но по разному), но мне он кажется не оптимальным, хотя может это из-за того, что вечер и утром я все же передумаю! |
|
|
Iron Bug |
7.2.2013, 9:35
Сообщение
#7
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
Все то же, как и в моем ответе Iron Bug. при чём тут система координат? нормаль - чисто геометрическое понятие. и строится она по формуле. и от системы координат не зависит. а чтобы сразу отсечь потенциально "далёкие" объекты, я предложила сначала отсортировать линии. а если там ещё и "окна" и всякая лажа - то она отсеивается ещё до всех манипуляций с вычислением расстояний, чтобы не парить моск. если стена неотличима от окна - это проблема постановки задачи. Сообщение отредактировал Iron Bug - 7.2.2013, 9:41 |
|
|
ViGOur |
7.2.2013, 10:47
Сообщение
#8
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Iron Bug, я примерно понял что ты имеешь ввиду, сейчас попробую как это будет!
|
|
|
ViGOur |
7.2.2013, 14:51
Сообщение
#9
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
В принципе и правда, как предложила Iron Bug, подходит, но для этого чертеж должен быть правильным!
Чтобы удовлетворять условию: Сразу говорю верх и них я не перепутал, это такая система координаты у QGraphicsScene
|
|
|
Алексей1153 |
7.2.2013, 20:57
Сообщение
#10
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
по мне - так не париться с сортировкой, посчитается моментально чисто на нормалях. На первое время пойдёт, а потом уж можно подумать об оптимизации сортировкой
даже если 1000 отрезков и 1000 точек, будет миллион комбинаций. компилировал, но не тестировал )
Сообщение отредактировал Алексей1153 - 7.2.2013, 21:01 |
|
|
Текстовая версия | Сейчас: 24.11.2024, 10:55 |