|
Центр фигуры
|
|||
---|---|---|---|
#18+
Есть замкнутая фигура (это контур дома), образованная тремя и более точками, заданными парами GPS-координат. В простейшем случае это будет прямоугольник, но могут быть и более сложные фигуры. Для упрощения можно считать, что в фигуре нет взаимных пересечений. Подскажите, как найти центр фигуры? Хотелось бы более качественный алгоритм, чем например центр bbox. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 21:55 |
|
Центр фигуры
|
|||
---|---|---|---|
#18+
Спасибо. Центр масс будет подходящей альтернативой, всяко лучше, чем центр bbox. Но центр масс может лежать за пределами контура, например если это дом в виде буквы П. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 09:40 |
|
Центр фигуры
|
|||
---|---|---|---|
#18+
Alibek B. Но центр масс может лежать за пределами контура ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 13:27 |
|
Центр фигуры
|
|||
---|---|---|---|
#18+
Если бы я знал, как это описать в математических терминах, то знал бы, что гуглить. Если же на пальцах, то мне нужен центр фигуры, который бы принадлежат фигуре. Колец у меня не будет, а для незамкнутых фигур можно указать на некий центр, который будет находится на середине средней линии. Ну а средняя линия для П-образного или Г-образного здания будет той самой П или Г. Опять же, если на пальцах, то видимо нужно равномерно отступать вовнутрь от контуров здания (утоньшать контур), пока результат не сведется к одиночной линии. А если получилось несколько сегментов-отводов, то выбирать самый длинный. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 15:04 |
|
Центр фигуры
|
|||
---|---|---|---|
#18+
Alibek B., ИМХО требования довольно специфичны. Сходу видно, что что нужно отличить прямоугольник от П или Г или Z и т.п. Для Щ, опять же, свои требования и такой вид надо опознать. Далее уже проще - для каждого типа использовать различные алгоритмы нахождения точки. Вы полагаете, такую или похожую задачу кто-нибудь уже решал? Может быть, может быть... Где-нибудь в области GIS, например. Так понимаю, простое определение цента по крайним координатам не годится. Чем не годится - недостаточна точность, фигура неправильно масштабируется или "едет", нечто другое? Ну и прагматическое - затраты на разработку/отладку "того_что_надо" будут ли выгоднее использования простых методов, хоть и не самых лучших? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 16:44 |
|
Центр фигуры
|
|||
---|---|---|---|
#18+
Середина bbox — это первое, что я сделал, там все крайне просто. Потом сделал середину центра масс (по вершинам), не уверен, что стало лучше. Суть задачи: нужно нарисовать маршрут поверх карты. В некоторых случаях для конечной точки маршрута не заданы координаты, но задан дом. В этом случае нужно оконечить маршрут на доме, по возможности сделать его более эстетичным. Когда маршрут заканчивается, не касаясь здания, то это выглядит не очень. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 17:42 |
|
Центр фигуры
|
|||
---|---|---|---|
#18+
Решение в лоб - выбрать ближайшую к "висящей" точку на контуре здания. Или ближайший угол здания (меньше считать). Возможно, для эстетики удастся зацепиться за дороги или подъездные пути, если таковые имеются. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 19:19 |
|
Центр фигуры
|
|||
---|---|---|---|
#18+
Пробовал, но если приводить трассу на угол или на контур, тогда трасса сливается с контуром, это визуально не очень хорошо выглядит. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 19:23 |
|
Центр фигуры
|
|||
---|---|---|---|
#18+
Alibek B. Суть задачи: нужно нарисовать маршрут поверх карты. В некоторых случаях для конечной точки маршрута не заданы координаты, но задан дом. В этом случае нужно оконечить маршрут на доме, по возможности сделать его более эстетичным. Когда маршрут заканчивается, не касаясь здания, то это выглядит не очень. А если у тебя проблема с тем что подъездная дорога задана в координатах, а конечная точка маршрута в виде адреса - у каждого дома есть координаты. Просто веди линию к ним и все. А очень большой дом, какой-бы странной формы он ни был, всегда вписывается в выпуклый многоугольник окруженный подъездными путями. И для каждого из адресов многоподъездных домов можно указать "подъезд номер Х находится по координатам (x,y). Все что навигатору нужно это найти ближайшую точку на "дороге" до точки (x,y). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 00:30 |
|
Центр фигуры
|
|||
---|---|---|---|
#18+
Alibek B. Если же на пальцах, то мне нужен центр фигуры, который бы принадлежат фигуре. 1) Найти центр тяжести 2) Найти ближайшую к центру тяжести точку здания. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 03:18 |
|
Центр фигуры
|
|||
---|---|---|---|
#18+
У меня маршруты не проездов, а подвесных воздушных линий, заканчиваются они не у дома, а внутри дома. Мне нужен визуальный центр фигуры. А для фигур сложной формы он не всегда совпадает с барицентром, всякие несимметричности сдвигают визуальный центр. По идее мне нужно разделить фигуру на прямоугольники, найти центры этих прямоугольников, а затем их усреднить пропорционально площади и с ограничением невыхода за пределы контура. Но разделить фигуру на прямоугольники это сама по себе сложная задача. Вообщем. буду пока использовать центр bbox. Как ни странно, но глазу он кажется более правильным, чем барицентр. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 08:28 |
|
Центр фигуры
|
|||
---|---|---|---|
#18+
Alibek B. У меня маршруты не проездов, а подвесных воздушных линий, заканчиваются они не у дома, а внутри дома. Мне нужен визуальный центр фигуры. А для фигур сложной формы он не всегда совпадает с барицентром, всякие несимметричности сдвигают визуальный центр. Дом кто-то нарисовал-построил? Ну пусть он и добавит в чертеж точку подключения. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 18:07 |
|
Центр фигуры
|
|||
---|---|---|---|
#18+
Alibek B. заканчиваются они не у дома, а внутри дома ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 19:14 |
|
|
Start [/forum/topic.php?fid=23&tid=1459366]: |
0ms |
get settings: |
1ms |
get forum list: |
11ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
31ms |
get topic data: |
3ms |
get forum data: |
0ms |
get page messages: |
14ms |
update_topic_read_status (1459366): 10.02.2022 22:19:42: |
0ms |
get tp. blocked users: |
1ms |
get online users: |
24ms |
check new: |
1ms |
others: | 94ms |
total: | 182ms |
0 / 0 |