首页 求多边形重心VB程序源代码

求多边形重心VB程序源代码

举报
开通vip

求多边形重心VB程序源代码求多边形重心VB程序源代码 VERSION 5.00 Begin VB.Form Form1 Caption = "多边形求重心v1.0 刘海平20120301" ClientHeight = 7230 ClientLeft = 60 ClientTop = 345 ClientWidth = 9240 LinkTopic = "Form1" ScaleHeight = 7230 ScaleWidth = 9240 StartUpPosition = 3 '窗口缺省 Begin VB.Com...

求多边形重心VB程序源代码
求多边形重心VB程序源代码 VERSION 5.00 Begin VB.Form Form1 Caption = "多边形求重心v1.0 刘海平20120301" ClientHeight = 7230 ClientLeft = 60 ClientTop = 345 ClientWidth = 9240 LinkTopic = "Form1" ScaleHeight = 7230 ScaleWidth = 9240 StartUpPosition = 3 '窗口缺省 Begin VB.CommandButton Command1 Caption = "运行" BeginProperty Font Name = "宋体" Size = 36 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 1215 Left = 6720 TabIndex = 13 Top = 3840 Width = 1695 End Begin VB.TextBox Text7 Height = 495 Left = 1800 TabIndex = 12 Text = "3dxyh.scr" Top = 6120 Width = 2055 End Begin VB.TextBox Text6 Height = 495 Left = 4080 TabIndex = 10 Text = "Text6" Top = 5160 Width = 1935 End Begin VB.TextBox Text5 Height = 495 Left = 1800 TabIndex = 9 Text = "Text5" Top = 5160 Width = 2055 End Begin VB.TextBox Text4 Height = 495 Left = 4080 TabIndex = 7 Text = "Text4" Top = 4320 Width = 1935 End Begin VB.TextBox Text3 Height = 495 Left = 1800 TabIndex = 6 Text = "Text3" Top = 4320 Width = 2055 End Begin VB.TextBox Text2 Height = 375 Left = 6480 TabIndex = 4 Text = "2" Top = 600 Width = 1335 End Begin VB.PictureBox Picture1 Height = 2895 Left = 600 Picture = "多边形重心.frx":0000 ScaleHeight = 2835 ScaleWidth = 5355 TabIndex = 2 Top = 1200 Width = 5415 End Begin VB.TextBox Text1 Height = 375 Left = 1440 TabIndex = 1 Text = "3dxyh.csv" Top = 600 Width = 1455 End Begin VB.Label Label5 Caption = "输出CAD运行脚本文件" Height = 375 Left = 360 TabIndex = 11 Top = 6120 Width = 1335 End Begin VB.Label Label4 Caption = "多边形重心" Height = 255 Left = 360 TabIndex = 8 Top = 5280 Width = 1095 End Begin VB.Label Label3 Caption = "坐标平均值" Height = 255 Left = 360 TabIndex = 5 Top = 4440 Width = 1215 End Begin VB.Label Label2 Caption = "输入文件头注释行数" Height = 375 Left = 4560 TabIndex = 3 Top = 600 Width = 1695 End Begin VB.Label Label1 Caption = "输入文件" Height = 255 Left = 600 TabIndex = 0 Top = 600 Width = 975 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Private Sub Command1_Click() Dim dname(10000) As String * 16, X(10000) As Double, Y(10000) As Double, H(10000) As Double, ANG(10000) As Double len_fhead = Val(Text2.Text) Open Text1.Text For Input As #1 Open Text7.Text For Output As #2 For i = 1 To len_fhead Line Input #1, aaaa$ Next i '读入数据求平均值并展点标注 i = 0: Xp = 0: Yp = 0 Do Input #1, dname(i), Y(i), X(i), H(i) Print #2, "point " + Trim(Str$(X(i))) + ","; Trim(Str$(Y(i))) Print #2, "text " + Trim(Str$(X(i))) + ","; Trim(Str$(Y(i))) + " " + dname(i) Xp = Xp + X(i) Yp = Yp + Y(i) i = i + 1 Loop Until EOF(1) n = i Print n Xp = Xp / n: Yp = Yp / n '进行平移各点和计算各点对应向量的角度 For i = 0 To n - 1 Y(i) = Y(i) - Yp X(i) = X(i) - Xp If X(i) >= 0 Then ANG(i) = Atn(Y(i) / X(i)) * 180 / 3.14159265358979 Else ANG(i) = 180 + Atn(Y(i) / X(i)) * 180 / 3.14159265358979 End If Next i '按角度把各点排序 For i = 0 To n - 2 For j = i + 1 To n - 1 If ANG(i) > ANG(j) Then NTEM$ = dname(i): XMIN = X(i): YMIN = Y(i): HMIN = H(i): AMIN = ANG(i) dname(i) = dname(j): X(i) = X(j): Y(i) = Y(j): H(i) = H(j): ANG(i) = ANG(j) dname(j) = NTEM$: X(j) = XMIN: Y(j) = YMIN: H(j) = HMIN: ANG(j) = AMIN End If Next j Next i '计算N个小三角形面积和重心并展平均和重心点标注 area = 0#: cenx = 0#: ceny = 0# For i = 0 To n - 1 If i = n - 1 Then t = 0 Else t = i + 1 T_area = X(i + 1) * Y(i) - Y(i + 1) * X(i) area = area + T_area * 0.5 cenx = cenx + T_area * (X(i) + X(i + 1)) / 6# ceny = ceny + T_area * (Y(i) + Y(i + 1)) / 6# Next i cenx = cenx / area ceny = ceny / area Text3.Text = Format(Yp, "#######0.000"): Text4.Text = Format(Xp, "#######0.000") Text5.Text = Format(Yp + ceny, "#######0.000"): Text6.Text = Format(Xp + cenx, "#######0.000") Print #2, "point " + Trim(Str$(Xp)) + ","; Trim(Str$(Yp)) Print #2, "text " + Trim(Str$(Xp)) + ","; Trim(Str$(Yp)) + " " + "Average" Print #2, "point " + Trim(Str$(Xp + cenx)) + ","; Trim(Str$(Yp + ceny)) Print #2, "text " + Trim(Str$(Xp + cenx)) + ","; Trim(Str$(Yp + ceny)) + " " + "Center" Close End Sub
本文档为【求多边形重心VB程序源代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_281650
暂无简介~
格式:doc
大小:23KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-10-20
浏览量:39