![]() |
|
![]() ![]() ![]() |
|
Dementor |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 9.7.2007 Репутация: нет Всего: нет |
Всем доброго времени суток!
Опять обращаюсь за помощью. Имеется массив точек с координатами X,Y,Z. Мне необходимо посчитать объем, который занимают эти точки. При этом желательно, чтобы учитывалось, что фигура, которую образуют эти точки, может быть с дыркой. Как это реализовать мне вообще не понятно... У меня есть конечно идеи типа построения между каждыми тремя точками треугольников, стороны которых не могут быть больше заданной величины (для устранения вероятности построения треугольника в дырке фигуры), потом что-то посчитать от этих треугольников, но короче дальше мысль у меня не развивается пока. Подскажите хотя бы куда копать... |
|||
|
||||
jorka |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 104 Регистрация: 25.10.2008 Репутация: нет Всего: нет |
Вот изображение как строится триангуляция на плоскости, примерно так же считается площадь любой выпуклой фигуры с ровными краями.
![]() Тебе нужно тоже самое сделать, но в объёме. С дыркой конечно прийдётся помучаться. Можно попробовать после построения фигуры, если она с дыркой, то разрезать её на две (или больше) так, что бы линия разреза шла через дыру, тогда вместо поиска объёма одной сложной фигуры (с дыркой) надо будет найти объём нескольких простых фигур без дыр. Лучше конечно свести всё к выпуклым фигурам. |
|||
|
||||
Dementor |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 9.7.2007 Репутация: нет Всего: нет |
Вот и я думал по поводу триангуляции. И как я понимаю другого выхода нет.
Буду делать триангуляцией. Спасибо большое за ответ! |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20580 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Любое количество точек более 4 задаёт тело в пространстве НЕОДНОЗНАЧНО. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Думаю, что наличие дырки делает задачу нерешаемой. Триангуляция позволит вычислить объем выпуклой фигуры (при условии, что точки могут находится не только на поверхности, но и в объеме). А вот допустимость любых "впуклостей", а уж, тем более, дырок...
Нужны какие-то дополнительные условия, которые позволили бы строго определить, что считать дыркой. Это сообщение отредактировал(а) _Y_ - 16.12.2012, 20:19 -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
Prospekt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 30.5.2012 Репутация: нет Всего: 1 |
Akina прав, нужно указывать какие точки соеденены ребрами для однозначности. Плоский случай предложенный jorka как бы однозначен потому что двухмерные точки соединятся в порядке следования в массиве. т.е. указывается их порядок.
Для наглядности можно взять квадрат ABCD, его площадь = 1. А теперь из этих же точек составим фигуру ABDC (песочные часы) площадь которой будет в 2 раза меньше. Это сообщение отредактировал(а) Prospekt - 16.12.2012, 22:24 |
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Точки должны быть связанные тогда объем можно вычислить.
|
|||
|
||||
Silent |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 252 Регистрация: 3.10.2006 Репутация: 1 Всего: 9 |
||||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
задача помоему называется построение минимальной выпуклой оболочки.
http://habrahabr.ru/post/144921/ http://algolist.manual.ru/maths/geom/convhull/ |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |