Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 30, 2015 12:07:59

sevatster
Зарегистрирован: 2015-08-17
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Oriented Bounding Box

Всем привет.
Есть структура точек 3D объекта в пространстве

[(x1,y1,z1),(x2,y2,z2),...,(xn,yn,zn)]
Нужно построить Oriented Bounding Box, то есть на выходе 6 точек - его вершины.
Что такое Oriented Bounding Box можно увидеть на рисунке и его отличие от простого минимакса:

Это по идее довольно просто, но я не могу найти алгоритм или решение. Нашел в NumPy функцию numpy.linalg.svd, но не уверен что это то, да и ругается что массив слишком большой.
Точек в районе 30 тысяч.

Отредактировано sevatster (Сен. 30, 2015 12:08:48)

Прикреплённый файлы:
attachment OBB.jpg (34,5 KБ)

Офлайн

#2 Сен. 30, 2015 12:21:08

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Oriented Bounding Box

Найти минимальные и максимальные значения по трём измерениям.

Офлайн

#3 Сен. 30, 2015 12:32:06

sevatster
Зарегистрирован: 2015-08-17
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Oriented Bounding Box

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

UPD то есть даже на рисунке видно, что вершины баундинг бокса даже не принадлежат тому множеству точек из которго состоит сам объект!

Отредактировано sevatster (Сен. 30, 2015 12:33:19)

Офлайн

#4 Сен. 30, 2015 14:02:34

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Oriented Bounding Box

А я подразумевал систему координат модели, но не сказал об этом.
Кроме того, не путайтесь в терминах и других с толку не сбивайте. https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BA%D1%81

Отредактировано Shaman (Сен. 30, 2015 14:04:07)

Офлайн

#5 Сен. 30, 2015 14:39:23

sevatster
Зарегистрирован: 2015-08-17
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Oriented Bounding Box

Что имеется в виду под “системой координат модели”? Пример бы.

Офлайн

#6 Сен. 30, 2015 14:42:53

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Oriented Bounding Box

Вообще-то, с такими вопросами рановато решать подобные задачи. Пример у Вас прямо на картинках, в виде сине-зелёно-красных стрелок.

Офлайн

#7 Сен. 30, 2015 14:49:37

sevatster
Зарегистрирован: 2015-08-17
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Oriented Bounding Box

Как я узнаю направление этих стрелок, если у меня объект как на рисунке справа?

Офлайн

#8 Сен. 30, 2015 15:01:48

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Oriented Bounding Box

На рисунке справа тоже есть стрелки. Если стрелок нет, огласите критерии, по которым будет решаться где у объекта верх, где дно.

Офлайн

#9 Сен. 30, 2015 15:22:25

sevatster
Зарегистрирован: 2015-08-17
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Oriented Bounding Box

Верх и дно объекта не нужно, зачем оно? А если объект шарообразный, что тогда? Есть просто набор точек, их нужно окружить минимальным параллелепипедом. Он, кстати будет единственным. То, что предлагаете вы, как-то уж через чур похоже на черный параллелепипед, который да, находится элементарно. Но повторюсь, мне нужен белый.

UPD А, я понял, рисунок он только для иллюстрации того, что мне нужно. А есть по факту у меня только структура из точек как описано.

Отредактировано sevatster (Сен. 30, 2015 15:25:49)

Офлайн

#10 Сен. 30, 2015 15:29:23

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Oriented Bounding Box

Ориентированый <> минимальный! Это совсем другая задача.

sevatster
Он, кстати будет единственным.
Нет, он не будет единственным.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version