用vb编写一个求任意多边形面积的程序,公式如下。要求用读入数据的形式读入各点X/Y坐标。好的话追加悬赏

如题所述

'添加一个Command1,一个CommonDialog1Dim sinX(100) As Single '多边形坐标XDim sinY(100) As Single '多边形坐标YDim intNum As Integer '多边形边数
Private Sub OpenTxtFile(strPFile As String) '打开文件'坐标数据文件为文本文件,XY坐标间用半角逗号隔开,一个坐标点占一行,文件不能有空行On Error GoTo ThisErrDoEventsDim i As IntegerDim strTemp As StringDim strIn() As StringDim fileNUM As IntegerfileNUM = FreeFileOpen strPFile For Input As #fileNUM '打开文件i = 0Do While Not EOF(fileNUM) '执行循环直到文件尾Line Input #fileNUM, strTemp '读出一行strIn = Split(strTemp, ",")sinX(i) = Val(strIn(0)) '将值赋给变量sinY(i) = Val(strIn(1)) '将值赋给变量i = i + 1LoopClose #fileNUM '关闭文件intNum = i '取边数Exit SubThisErr:MsgBox Err.Description, vbOKOnly, Err.SourceEnd Sub
Private Sub Command1_Click()Dim i As IntegerDim sinOutput As SingleDim strFileName As StringCommonDialog1.ShowOpen '显示打开对话框strFileName = CommonDialog1.FileName '选取数据文件Call OpenTxtFile(strFileName)sinOutput = 0#For i = 0 To intNum - 1sinOutput = sinOutput + (sinX(i) + sinX(i + 1)) * (sinY(i + 1) - sinY(i)) / 2 '我认为,你的计算公式是不正确的Next iMsgBox "你所求的 " & intNum & " 边形的面积是:" & vbCrLf & sinOutputEnd Sub
'下边是一个四边形的各点坐标,试一下是正常的'2.5,3.4'4.5,2.0'5.6,4.8'4.2,6.1'下面为根据你的公式计算的结果(如果你的公式是正确的话)'你所求的 4 边形的面积是:'2.799999
温馨提示:内容为网友见解,仅供参考
无其他回答

在acrgis中使用VB编写的一个程序,功能是计算多边形面积,出了点问题...
Rem 三角形的面积S=sqr(p*(p-a)*(p-b)*(p-c)),其中,p=(a+b+c)\/2,a、b、c为边长,边长=sqr((x1-x2)^2+(y1-y2)^2),而(x1,y1)和(x2,y2)分别为两点的坐标值 Rem 以下代码为求任意多边形的面积,边数由用户自行决定 Private Sub Command1_Click()Dim n, s, i, x(...

用VB编写画图程序
Shift As Integer, X As Single, Y As Single) oldx = X oldy = YEnd Sub

VB 过程的调用 已知五边形各顶点的坐标,求其面积?
计算不是难点,难点在于如何根据已知的5个点坐标,来确定一个封闭的图形:如下所示,正确的是图 a,而不进行判断随意连接,就可能会出现图b:

用VB编写一个程序, 输入a、b、c三个数,要求按由大到小的顺序显示...
x = InputBox("输入第一个数")y = InputBox("输入第二个数")z = InputBox("输入第三个数")If x < y Then t = x: x = y: y = t If x < z Then t = x: x = z: z = t If y < z Then t = y: y = z: z = t Print x, y, z End Sub ...

怎么用VB编写一个可以在指定坐标添加点的小程序
在Picture1指定坐标画点,可以用Picture1.PSet (x, y)。x为横坐标值,y为纵坐标值。比如你的要求这样做:Private Sub Command1_Click()Dim x As Long, y As Long Dim inputValue As String Dim temp As String Picture1.DrawWidth = 10 temp = "请输入画点的x横坐标值:0-"reInX: input...

如何用VB编一个计算X值Y值的程序?
步骤如下:1、在B2单元格输入表达式= 1200\/[1-(X+25%)]*(X+25%)=500 2、在“数据”选项下的“模拟运算”中,选择“单变量求解”。3、选择目标单元格为B2,输入Y值,选择B1为可变单元格,按“确定”。4、单元格求解状态返回一个解,按确定,保存符合要求的X值。5、单变量求解被广泛用于...

vb中的程序难题,拜求高手帮忙解决!
用VB写程序时,能不能从excal文件中读出数据,并能像EXCAL那样绘出一条曲线来,曲线希望Y轴是excal文件里得C列的数据,X轴希望是B列的数据乘上某个数,就相当与EXCAL文件的每行数据代... 用VB写程序时,能不能从excal文件中读出数据,并能像EXCAL那样绘出一条曲线来,曲线希望Y轴是excal文件里得C列的数据,X轴希...

用VB编写一个计算器程序的代码
2、各控件组其属性设置如下:设置效果如下图所示:二、编写代码 Dim s1 As Single, s2 As Single, ysf As String ‘定义两个单精度数变量用与存放参与运算的数,一个字符型存放运算符 Private Sub Command1_Click(Index As Integer)Text1.Text = Text1.Text & Command1(Index).Caption ’...

用vb编写一个调用ping.exe程序。
Const HWND_BOTTOM = 1 Dim Proc As PROCESS_INFORMATION '进程信息 Dim Start As STARTUPINFO '启动信息 Dim SecAttr As SECURITY_ATTRIBUTES '安全属性 Dim hReadPipe As Long '读取管道句柄 Dim hWritePipe As Long '写入管道句柄 Dim lngBytesRead As Long '读出数据的字节数 Dim strBuffer As...

用VB程序求圆的面积
'直接复制此代码到代码区 然后点一下窗体输入任意一个数值即得出圆的面积 Private Sub Form_Click()Dim x As Integer,PI As Single PI = 3.1415926 x = InputBox("输入一个圆的半径")y = 3.14 x x MsgBox "圆的面积为:"& y End Sub ...

相似回答