Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Центр фигуры / 15 сообщений из 15, страница 1 из 1
08.02.2022, 21:55
    #40132688
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Центр фигуры
Есть замкнутая фигура (это контур дома), образованная тремя и более точками, заданными парами GPS-координат.
В простейшем случае это будет прямоугольник, но могут быть и более сложные фигуры.
Для упрощения можно считать, что в фигуре нет взаимных пересечений.
Подскажите, как найти центр фигуры?
Хотелось бы более качественный алгоритм, чем например центр bbox.
...
Рейтинг: 0 / 0
08.02.2022, 22:40
    #40132694
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Центр фигуры
...
Рейтинг: 0 / 0
09.02.2022, 09:40
    #40132752
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Центр фигуры
Спасибо.
Центр масс будет подходящей альтернативой, всяко лучше, чем центр bbox.
Но центр масс может лежать за пределами контура, например если это дом в виде буквы П.
...
Рейтинг: 0 / 0
09.02.2022, 13:27
    #40132804
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Центр фигуры
Alibek B.
Но центр масс может лежать за пределами контура
Ну да, а нужно-то что?
...
Рейтинг: 0 / 0
09.02.2022, 15:04
    #40132831
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Центр фигуры
Если бы я знал, как это описать в математических терминах, то знал бы, что гуглить.
Если же на пальцах, то мне нужен центр фигуры, который бы принадлежат фигуре.
Колец у меня не будет, а для незамкнутых фигур можно указать на некий центр, который будет находится на середине средней линии.
Ну а средняя линия для П-образного или Г-образного здания будет той самой П или Г.

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

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

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

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

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

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

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

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

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

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


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