OCE 源头代码:AutoCAD VBA 凸多边形面积

如下图中的公式 4-15:已知三角形顶点坐标 Xi, Yi,可以求解其面积。同样道理,将行列式中的 Xi 与 Yi 替换为 X 与 Y 即可求得红色阴影三角形面积。注意:为了避免行列式中的面积出现负值,三角形顶点编码应按逆时针方向编排。

上述做法可以推广到四边形、五边形、六边形等凸多边形的面积计算:假设 M 边形内部的任意一点 J(X, Y),多边形的面积等于 M 个行列式 N.ji, i = 1 to M 之和的一半。另外,按照上面的逆时针编排规则。如果行列式中有某个 N.ji 出现负值,表明点 J 在多边形外;若出现 N.ji = 0 则表明点 J 在多边形的边上。

源代码中包含四个过程及函数:1)面积计算主过程;2)三角形面积计算函数 Area3;3)凸多边形面积计算函数 AreaPoly;4)创建选择集的过程。

Option Explicit

-------------------------------------------------------------------------------------------------------------

Public Sub MainSub()

Dim SeleObjts As AcadSelectionSet

Call CreateSelectionSet(SeleObjts, "SeleObjts")
SeleObjts.SelectOnScreen

Dim Objt As Object
Dim Area As Double

Dim Pc(2) As Double

For Each Objt In SeleObjts
  If TypeOf Objt Is AcadLWPolyline Then
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值