找回密码
 立即注册
搜索
热搜: rtk 全站仪 航测
查看: 542|回复: 1

[求助]四边形或者六变形的面积式子

[复制链接]

主题

0

回帖

2

积分

新手上路

积分
2
发表于 2004-11-17 12:31:47 | 显示全部楼层 |阅读模式
<FONT face=宋体 size=2>On Error GoTo ErrHandle<BR>Dim pnt<BR>Dim picked As Boolean<BR>Dim px() As Double<BR>Dim py() As Double<BR>Dim i, k As Integer<BR>Dim pcenter() As Double<BR>Dim insertdistance() As Double<BR>Me.Hide<BR>Do While 1<BR>pnt = ThisDrawing.Utility.GetPoint<BR>ThisDrawing.SendCommand &quot;-boundary&quot; &amp; vbCr &amp; &quot;a&quot; &amp; vbCr &amp; &quot;b&quot; &amp; vbCr &amp; &quot;e&quot; &amp; vbCr &amp; vbCr &amp; pnt(0) &amp; &quot;,&quot; &amp; pnt(1) &amp; vbCr &amp; vbCr<BR>Set pr = ThisDrawing.ModelSpace(ThisDrawing.ModelSpace.Count - 1)<BR>Dim retCoord As Variant<BR>retCoord = pr.Coordinates<BR>k = (UBound(retCoord) + 1) / 2 &#39;记录新绘制pline顶点个数<BR>MsgBox &quot;这是一个&quot; &amp; k &amp; &quot;边形&quot;<BR>ReDim px(UBound(retCoord)) As Double<BR>ReDim py(UBound(retCoord)) As Double<BR>For i = 0 To UBound(retCoord) Step 2<BR>px(i / 2) = retCoord(i)<BR>py(i / 2) = retCoord(i + 1)<BR>Next i<BR>ReDim insertdistance(k) As Double<BR>For i = 0 To k - 2 &#39;用点选的方法获得点坐标,然后判断图形形状,计算形状面积,累加所有点选图形面积计算式。<BR>&#39;最后得出象: A*B + C*D + E*F<BR>insertdistance(i) = Sqr((px(i) - px(i + 1)) * (px(i) - px(i + 1)) + (py(i) - py(i + 1)) * (py(i) - py(i + 1)))<BR>Next i &#39;因为我只要求出四边形和六边形,并且还差一个判断,所有的角度是直角<BR>If k = 4 Then<BR>ssss = insertdistance(0) &amp; &quot;*&quot; &amp; insertdistance(1)<BR>Else &#39;还有一种情况是六边形<BR>ssss = insertdistance(0) &amp; &quot;*&quot; &amp; insertdistance(1) &amp; &quot;+&quot; &amp; insertdistance(3) &amp; &quot;*&quot; &amp; insertdistance(4) &#39;此处得到了是面积的式子,而且要求每次点击六边形或者四边行要把前面得到的式子再追加上来。……………………………………………………<BR>End If<BR>MsgBox ssss &#39;这里其实应该显示的结果如图所示<BR>picked = True<BR>Loop<BR>ErrHandle:<BR>Me.Show<BR><BR>头疼的地方就在省略号的地方,我不知道如何将第一次选择图形所得到的公式继续追加起来,而且六边形的形状有四种,我的程序中只要考虑这四种情况,如何解决求面积公式,真是不知道如何是好,谢谢</FONT> http://upload/forum/20041117203143.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|测量空间论坛 ( 闽ICP备19019609号-1 )

GMT+8, 2026-7-4 22:58 , Processed in 0.065895 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表