- UID
- 190319
- 积分
- 29
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2004-11-6
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
On Error GoTo ErrHandle
Dim pnt
Dim picked As Boolean
Dim px() As Double
Dim py() As Double
Dim i, k As Integer
Dim pcenter() As Double
Dim insertdistance() As Double
Me.Hide
Do While 1
pnt = ThisDrawing.Utility.GetPoint
ThisDrawing.SendCommand "-boundary" & vbCr & "a" & vbCr & "b" & vbCr & "e" & vbCr & vbCr & pnt(0) & "," & pnt(1) & vbCr & vbCr
Set pr = ThisDrawing.ModelSpace(ThisDrawing.ModelSpace.Count - 1)
Dim retCoord As Variant
retCoord = pr.Coordinates
k = (UBound(retCoord) + 1) / 2 '记录新绘制pline顶点个数
MsgBox "这是一个" & k & "边形"
ReDim px(UBound(retCoord)) As Double
ReDim py(UBound(retCoord)) As Double
For i = 0 To UBound(retCoord) Step 2
px(i / 2) = retCoord(i)
py(i / 2) = retCoord(i + 1)
Next i
ReDim insertdistance(k) As Double
For i = 0 To k - 2 '用点选的方法获得点坐标,然后判断图形形状,计算形状面积,累加所有点选图形面积计算式。
'最后得出象: A*B + C*D + E*F
insertdistance(i) = Sqr((px(i) - px(i + 1)) * (px(i) - px(i + 1)) + (py(i) - py(i + 1)) * (py(i) - py(i + 1)))
Next i '因为我只要求出四边形和六边形,并且还差一个判断,所有的角度是直角
If k = 4 Then
ssss = insertdistance(0) & "*" & insertdistance(1)
Else '还有一种情况是六边形
ssss = insertdistance(0) & "*" & insertdistance(1) & "+" & insertdistance(3) & "*" & insertdistance(4) '此处得到了是面积的式子,而且要求每次点击六边形或者四边行要把前面得到的式子再追加上来。……………………………………………………
End If
MsgBox ssss '这里其实应该显示的结果如图所示
picked = True
Loop
ErrHandle:
Me.Show
头疼的地方就在省略号的地方,我不知道如何将第一次选择图形所得到的公式继续追加起来,而且六边形的形状有四种,我的程序中只要考虑这四种情况,如何解决求面积公式,真是不知道如何是好,谢谢 |
|