Площадь многогранника
От: Аноним  
Дата: 10.03.06 09:47
Оценка:
Есть задача. Определить площадь поверхности выпуклого многогранника,
зная только координаты точек в 3D системе координат (x, y, z).

Помогите пожалуйста ее сделать. Дайте ссылки по описанию алгоритма.
Заранее спасибо...
Re: Площадь многогранника
От: Venn Украина  
Дата: 10.03.06 10:19
Оценка: 12 (1)
On Fri, 10 Mar 2006 11:47:48 +0200, Аноним <0@users.rsdn.ru> wrote:

> Есть задача. Определить площадь поверхности выпуклого многогранника,

> зная только координаты точек в 3D системе координат (x, y, z).
>
> Помогите пожалуйста ее сделать. Дайте ссылки по описанию алгоритма.
> Заранее спасибо...

1. Перебираешь все тройки точек.
2. Если все остальнык точки лежат по одну сторону от плоскости
образованной данными, то прибавляешь ее площадью
есть ньюансы, но все решимо

--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Posted via RSDN NNTP Server 2.0
Re: Площадь многогранника
От: Azst Россия  
Дата: 10.03.06 18:22
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть задача. Определить площадь поверхности выпуклого многогранника,

А>зная только координаты точек в 3D системе координат (x, y, z).

А>Помогите пожалуйста ее сделать. Дайте ссылки по описанию алгоритма.

А>Заранее спасибо...

Через одну из вершин разбиваете многоугольник на треугольник и считаете сумму площадей треугольников. А вообще, если готовая формула для выпуклого многоугольника, которая позволяет вычислять площадь по точкам! Гугль Вам в помощь!
Re[2]: Площадь многогранника
От: _DAle_ Беларусь  
Дата: 10.03.06 23:15
Оценка:
Здравствуйте, Venn, Вы писали:

V>On Fri, 10 Mar 2006 11:47:48 +0200, Аноним <0@users.rsdn.ru> wrote:


>> Есть задача. Определить площадь поверхности выпуклого многогранника,

>> зная только координаты точек в 3D системе координат (x, y, z).
>>
>> Помогите пожалуйста ее сделать. Дайте ссылки по описанию алгоритма.
>> Заранее спасибо...

V>1. Перебираешь все тройки точек.

V>2. Если все остальнык точки лежат по одну сторону от плоскости
V> образованной данными, то прибавляешь ее площадью
V>есть ньюансы, но все решимо

Это будет работать, только если каждая грань многогранника является треугольником. Достаточно существенный нюанс для этого и так достаточно неэффективного способа.


V>--

V>Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Re[2]: Площадь многогранника
От: McSeem2 США http://www.antigrain.com
Дата: 11.03.06 05:32
Оценка:
Здравствуйте, Azst, Вы писали:

A>Через одну из вершин разбиваете многоугольник на треугольник и считаете сумму площадей треугольников. А вообще, если готовая формула для выпуклого многоугольника, которая позволяет вычислять площадь по точкам! Гугль Вам в помощь!


Надо не для многоугольника, а для многогранника. А площадь любого простого многоугольника, хоть выпуклого, хоть невыпуклого считается элементарно: sum(x[i]*y[i+1] — x[i+1]*y[i])/2. Заодно получим направление обхода (знак площади).
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re: Площадь многогранника
От: McSeem2 США http://www.antigrain.com
Дата: 11.03.06 05:42
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть задача. Определить площадь поверхности выпуклого многогранника,

А>зная только координаты точек в 3D системе координат (x, y, z).

Что-то мне подсказывает, что надо копать в сторону выпуклых оболочек (convex hull). Ведь точки могут быть никак не упорядочены, значит у нас нет информации о связности (гранях). Следовательно, необходимо как минимум упорядочить точки, например, по широте-долготе относительно центра масс. А потом уже — попытаться вычислить сами грани. То есть, задача сводится к построению многогранника как такового по набору точек.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[3]: Площадь многогранника
От: Рома Мик Россия http://romamik.com
Дата: 11.03.06 11:37
Оценка:
Здравствуйте, _DAle_, Вы писали:

_DA>Это будет работать, только если каждая грань многогранника является треугольником.

Не обязательно. Просто точки лежащие в той же плоскости, не надо вообще учитывать при определении, лежат ли все остальные точки с одной стороны от плоскости образованной тремя выбранными точками.
... << RSDN@Home 1.2.0 alpha rev. 622>>
Re[4]: Площадь многогранника
От: _DAle_ Беларусь  
Дата: 11.03.06 13:32
Оценка: +1
Здравствуйте, Рома Мик, Вы писали:

РМ>Здравствуйте, _DAle_, Вы писали:


_DA>>Это будет работать, только если каждая грань многогранника является треугольником.

РМ>Не обязательно. Просто точки лежащие в той же плоскости, не надо вообще учитывать при определении, лежат ли все остальные точки с одной стороны от плоскости образованной тремя выбранными точками.

Неправда, нельзя их просто не рассматривать, надо будет построить в этой плоскости выпуклую оболочку и найти площадь получившегося многоугольника.
Re[2]: Площадь многогранника
От: _DAle_ Беларусь  
Дата: 11.03.06 13:45
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Здравствуйте, Аноним, Вы писали:


А>>Есть задача. Определить площадь поверхности выпуклого многогранника,

А>>зная только координаты точек в 3D системе координат (x, y, z).

MS>Что-то мне подсказывает, что надо копать в сторону выпуклых оболочек (convex hull). Ведь точки могут быть никак не упорядочены, значит у нас нет информации о связности (гранях). Следовательно, необходимо как минимум упорядочить точки, например, по широте-долготе относительно центра масс. А потом уже — попытаться вычислить сами грани. То есть, задача сводится к построению многогранника как такового по набору точек.


Так и есть, надо построить выпуклую оболочку на этом множестве точек, а потом уже просуммировать площади граней. Эффективные методы построения выпуклых оболочек размерности больше двух можно найти, например, в книге Препарата-Шеймос "Вычислительная геометрия: введение". Например, метод заворачивания подарка (он же обход Джарвиса). Если же эффективность большой роли не играет, можно воспользоваться алгоритмом, упомянутым выше, со сложностью O(n^4).
Re[3]: Площадь многогранника
От: Azst Россия  
Дата: 13.03.06 04:51
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Здравствуйте, Azst, Вы писали:


A>>Через одну из вершин разбиваете многоугольник на треугольник и считаете сумму площадей треугольников. А вообще, если готовая формула для выпуклого многоугольника, которая позволяет вычислять площадь по точкам! Гугль Вам в помощь!


MS>Надо не для многоугольника, а для многогранника. А площадь любого простого многоугольника, хоть выпуклого, хоть невыпуклого считается элементарно: sum(x[i]*y[i+1] — x[i+1]*y[i])/2. Заодно получим направление обхода (знак площади).


Мдя, что-то я в торопях криво прочитал, сорри ...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Площадь многогранника
От: Dima_Ru  
Дата: 13.03.06 14:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть задача. Определить площадь поверхности выпуклого многогранника,

А>зная только координаты точек в 3D системе координат (x, y, z).

А>Помогите пожалуйста ее сделать. Дайте ссылки по описанию алгоритма.

А>Заранее спасибо...


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

Если у тебя есть просто набор точек(в пространстве) и ты не знаешь
где-какая грань, то , в принципе, можно триангулировать было бы этот масив точек.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.