Тема: Площадь составной двумерной фигуры(+)

Есть у меня двумерная фигура, полученная проецированием на плоскость трёхмерного объекта. Состоит из нескольких контуров.
Я хочу посчитать её площадь..... Причём не тыкаю мышью в контуры, а программно их определяю. Пытался использовать -boundary и далее.. Что не шибко получается (т.е. иногда получается, а иногда нет, видимо, по причинам описанным в теме :"Замкнутый контур").
Кто то говорил, что можно вычислять общую площадь, разбив всю фигуру на примитивы и чего там анализируя.
Можете подсказать, что под этим имелось ввиду?
И вообще как по науке вычислить площадь сложной двумерной фигуры?
С уважением?

Re: Площадь составной двумерной фигуры(+)

"удвоеная площадь полигона равна сумме произведений каждой абсциссы на разность ординат последующей и предыдущей точек"

Re: Площадь составной двумерной фигуры(+)

А попроще как сказать??
Что считать полигономом? Я в акаде ламер(((((...
А я пока подумаю, что это означает?

Re: Площадь составной двумерной фигуры(+)

Что никто не знает?

Re: Площадь составной двумерной фигуры(+)

полигон - это многоугольник, абциссы - координты х вершин многоугольника, ординаты  - координаты у вершин.
Извини но формулу сюда (нет специальных знаков) нельзя записать, если сильно нужна пиши на мыло (но помоему и так понятно)

Re: Площадь составной двумерной фигуры(+)

А порусски - подсчет площади производится следующим образом: разбиваешь этот полигон (или выпуклый многоугольник по математически) на трапеции линиями параллельными оси х (или у как душе угодно). Считаешь площади трапеций (формулу не скажу - в школе надо было учица - если не знаешь) и  суммируешь - вуаля. 
2NK: я долго пялился на формулу пытаясь сообразить о чем речь, можно было бы ее написать аля ТеХ - если нужно 2 в степени ну скажем 3, то пишется 2^3, если нада с индексом, то 2_3, ну а если сумму, то sum :) и усе понятно

Re: Площадь составной двумерной фигуры(+)

в формуле нет ничего сложного, т.е. применительно для четырехугольника с вершинами 1,2,3,4 и соотв координатами х1,у1 и тд.она будет выглядеть так
2S=x1*(y2-y4)+x2*(y3-y1)+x3*(y4-y2)+x4*(y1-y3)

если будет возникать путаница в определении какая ордината(у) последующая, а какая предыдущая нужно будет обратится к рисунку(например у точки 1 последующая точка 2, а предыдущая точка 4). но это так на всякий случай.

  to murzic
если поити дальше в рассуждениях , нарисовать рядом оси координат, с каждой вершины опустить проекции на ось и подсчитать площади получаемых трапеций, затем подсчитать площадь фигуры путем сложения и вычитания сответствующих трапеций и упростив формулу придем как раз к  варианту в первом моем сообщении

Re: Площадь составной двумерной фигуры(+)

Правда? ;) Как же я сам не догадался ;) ? Помоему такие задачи решают в классе 9, а я кажется уже вырос из этого возраста ;) А можно и интегралы посчитать ;)

Re: Площадь составной двумерной фигуры(+)

2murzik: не учиЦа, а учиться.

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

Re: Площадь составной двумерной фигуры(+)

Конечно есть, например команда "_area" , но в ней придется либо указать все точки, либо указать объект

Re: Площадь составной двумерной фигуры(+)

А как получить список всех точек?

Re: Площадь составной двумерной фигуры(+)

попробуй посчитать сначала через "_area"
вот примерный набросок программы
(defun c:площ (/ ss_1 obj i s)
  (setvar "cmdecho" 0)
   (setq i 0
    s 0)
(setq ss_1 (ssget'((0 . "LWPOLYLINE"))))
  (repeat (SSLENGTH ss_1)
   (setq obj (ssname ss_1 i))
     (setvar "cmdecho" 0)
     (command "area" "object" obj)
     (setq s(+ s (getvar "area")))
   (setq i (+ i 1))
     (setvar "cmdecho" 1)
    (princ(strcat "\nПлощадь " (itoa i) " объекта = "))
    (princ (getvar "area"))
     );end repeat 
  (setvar "cmdecho" 1) 
   (princ "\nОбщая площадь: ")
       (princ s)
   (princ)     
     ); end defun

А если захочешь через координаты, то их можно вытащить по  10  dxf  коду (из полилинии)