powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Центр фигуры
15 сообщений из 15, страница 1 из 1
Центр фигуры
    #40132688
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть замкнутая фигура (это контур дома), образованная тремя и более точками, заданными парами GPS-координат.
В простейшем случае это будет прямоугольник, но могут быть и более сложные фигуры.
Для упрощения можно считать, что в фигуре нет взаимных пересечений.
Подскажите, как найти центр фигуры?
Хотелось бы более качественный алгоритм, чем например центр bbox.
...
Рейтинг: 0 / 0
Центр фигуры
    #40132694
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Центр фигуры
    #40132752
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
Центр масс будет подходящей альтернативой, всяко лучше, чем центр bbox.
Но центр масс может лежать за пределами контура, например если это дом в виде буквы П.
...
Рейтинг: 0 / 0
Центр фигуры
    #40132804
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.
Но центр масс может лежать за пределами контура
Ну да, а нужно-то что?
...
Рейтинг: 0 / 0
Центр фигуры
    #40132831
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если бы я знал, как это описать в математических терминах, то знал бы, что гуглить.
Если же на пальцах, то мне нужен центр фигуры, который бы принадлежат фигуре.
Колец у меня не будет, а для незамкнутых фигур можно указать на некий центр, который будет находится на середине средней линии.
Ну а средняя линия для П-образного или Г-образного здания будет той самой П или Г.

Опять же, если на пальцах, то видимо нужно равномерно отступать вовнутрь от контуров здания (утоньшать контур), пока результат не сведется к одиночной линии. А если получилось несколько сегментов-отводов, то выбирать самый длинный.
...
Рейтинг: 0 / 0
Центр фигуры
    #40132860
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

ИМХО требования довольно специфичны. Сходу видно, что что нужно отличить прямоугольник от П или Г или Z и т.п. Для Щ, опять же, свои требования и такой вид надо опознать. Далее уже проще - для каждого типа использовать различные алгоритмы нахождения точки.

Вы полагаете, такую или похожую задачу кто-нибудь уже решал? Может быть, может быть... Где-нибудь в области GIS, например.

Так понимаю, простое определение цента по крайним координатам не годится. Чем не годится - недостаточна точность, фигура неправильно масштабируется или "едет", нечто другое?
Ну и прагматическое - затраты на разработку/отладку "того_что_надо" будут ли выгоднее использования простых методов, хоть и не самых лучших?
...
Рейтинг: 0 / 0
Центр фигуры
    #40132880
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Середина bbox — это первое, что я сделал, там все крайне просто.
Потом сделал середину центра масс (по вершинам), не уверен, что стало лучше.

Суть задачи: нужно нарисовать маршрут поверх карты.
В некоторых случаях для конечной точки маршрута не заданы координаты, но задан дом.
В этом случае нужно оконечить маршрут на доме, по возможности сделать его более эстетичным.
Когда маршрут заканчивается, не касаясь здания, то это выглядит не очень.
...
Рейтинг: 0 / 0
Центр фигуры
    #40132914
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решение в лоб - выбрать ближайшую к "висящей" точку на контуре здания. Или ближайший угол здания (меньше считать).
Возможно, для эстетики удастся зацепиться за дороги или подъездные пути, если таковые имеются.
...
Рейтинг: 0 / 0
Центр фигуры
    #40132915
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал, но если приводить трассу на угол или на контур, тогда трасса сливается с контуром, это визуально не очень хорошо выглядит.
...
Рейтинг: 0 / 0
Центр фигуры
    #40132978
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.
Суть задачи: нужно нарисовать маршрут поверх карты.
В некоторых случаях для конечной точки маршрута не заданы координаты, но задан дом.
В этом случае нужно оконечить маршрут на доме, по возможности сделать его более эстетичным.
Когда маршрут заканчивается, не касаясь здания, то это выглядит не очень.
Почему не эстетично??? У всех навигаторов, маршрут заканчивается на дорого возле здания. Если ты начнешь рисовать линию внутрь здания, то ты спровоцируешь аварию. Ну или смутишь более опытных водителей.

А если у тебя проблема с тем что подъездная дорога задана в координатах, а конечная точка маршрута в виде адреса - у каждого дома есть координаты. Просто веди линию к ним и все.

А очень большой дом, какой-бы странной формы он ни был, всегда вписывается в выпуклый многоугольник окруженный подъездными путями. И для каждого из адресов многоподъездных домов можно указать "подъезд номер Х находится по координатам (x,y). Все что навигатору нужно это найти ближайшую точку на "дороге" до точки (x,y).
...
Рейтинг: 0 / 0
Центр фигуры
    #40132986
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.
Если же на пальцах, то мне нужен центр фигуры, который бы принадлежат фигуре.
Тогда в два действия:
1) Найти центр тяжести
2) Найти ближайшую к центру тяжести точку здания.
...
Рейтинг: 0 / 0
Центр фигуры
    #40133010
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня маршруты не проездов, а подвесных воздушных линий, заканчиваются они не у дома, а внутри дома.

Мне нужен визуальный центр фигуры. А для фигур сложной формы он не всегда совпадает с барицентром, всякие несимметричности сдвигают визуальный центр.
По идее мне нужно разделить фигуру на прямоугольники, найти центры этих прямоугольников, а затем их усреднить пропорционально площади и с ограничением невыхода за пределы контура.
Но разделить фигуру на прямоугольники это сама по себе сложная задача.

Вообщем. буду пока использовать центр bbox. Как ни странно, но глазу он кажется более правильным, чем барицентр.
...
Рейтинг: 0 / 0
Центр фигуры
    #40133281
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.
У меня маршруты не проездов, а подвесных воздушных линий, заканчиваются они не у дома, а внутри дома.

Мне нужен визуальный центр фигуры. А для фигур сложной формы он не всегда совпадает с барицентром, всякие несимметричности сдвигают визуальный центр.
Так, ну раз уж заговорили о визуальном центре, то может обратиться к дизайнеру? Может в каких-то случаях визуально эстетичный центр будет где-нибудь сбоку, вдалеке от геометрически-физического центра?
Дом кто-то нарисовал-построил? Ну пусть он и добавит в чертеж точку подключения.
...
Рейтинг: 0 / 0
Центр фигуры
    #40133303
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.
заканчиваются они не у дома, а внутри дома
Надеюсь, Вы не CAD-систему разрабатываете с элементами автоматизации, а лишь средство визуализации, чтобы понятно было. Если так, то и задизайнить без особых наворотов. Например, контур здания подсветить и заключить в окружность (или эллипс), а трассу дотянуть до ближайшей точки окружности дотянуть. Дальше уже человек нехай думает, схематично вполне понятно, вроде.
...
Рейтинг: 0 / 0
Центр фигуры
    #40133331
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, у меня имеется кривоватая ГИС-система, с которой я хочу экспортировать данные в формат KML (в более качественном оформлении) и просматривать результаты в Google Earth или чем-то подобном.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Центр фигуры
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (7): Анонимы (6), Yandex Bot 3 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]