Здраствуйте! возникла проблема! нужно измерять площадь полей на больших уклонах…площадь на плоскости известна, но уклони большие нужно вичислить площадь конкретного многоугольника построенного по трем координатам или же конкретной 3d плокости???
меня в институте учили что площадь только на плоскости((((
Скрипт вычисляет площадь (кв.м.) помеченного треугольника
$SO=@Map.SelectedObject
$C=@Map.Object[$SO].Count
@if $C<>4 then @Break Помеченный объект не является треугольником
$Cl=@Map.Object[$SO].Closed
@if $Cl=0 then @Break Помеченный объект разомкнут
$XYZ1=@Map.Object[$SO].Point[1]
$X1=@StringPart 1 $XYZ1
$Y1=@StringPart 2 $XYZ1
$Z1=@StringPart 3 $XYZ1
$XYZ2=@Map.Object[$SO].Point[2]
$X2=@StringPart 1 $XYZ2
$Y2=@StringPart 2 $XYZ2
$Z2=@StringPart 3 $XYZ2
$XYZ3=@Map.Object[$SO].Point[3]
$X3=@StringPart 1 $XYZ3
$Y3=@StringPart 2 $XYZ3
$Z3=@StringPart 3 $XYZ3
$AX=$X2-$X1
$AY=$Y2-$Y1
$AZ=$Z2-$Z1
$BX=$X3-$X1
$BY=$Y3-$Y1
$BZ=$Z3-$Z1
$VI=$AY*$BZ-$AZ*$BY
$VJ=$AZ*$BX-$AX*$BZ
$VK=$AX*$BY-$AY*$BX
$Area3D=@Calc 0.5*(sqrt($VI*$VI+$VJ*$VJ+$VK*$VK))
@Dialog.Message $Area3D
P.S. С многоугольниками сложнее, потому как их можно по разному разбить на треугольники и соответственно результат может отличатся.
romchik если Вам не трудно выложите результаты на сколько разница по площадям в плане и 3Д, спасибо
Можно обойтись без скрипта. Для TIN (ЦМР>Создать TIN) расчитывается площадь поверхности, а не площадь проекции на горизонтальную плоскость как для всех полигонов. Пробуйте.