给定坐标求面积,以及确定坐标顺序以便连点成面

最近一个朋友,遇到一个问题,给定坐标,以及面积,需连点成面,然后需要求得左边点顺序

做法,在坐标表A列插入空列,命名为XH 列,B 列为X坐标系,C为Y坐标系,在表里A列填充假定顺序号,跑一次程序,看面积是否满足要求。

思路:通过改变A列的序号,并排序,然后计算面积;

 

 代码为EXCEL VBA.

Sub getTotal()
 Dim i As Integer
 For i = 2 To 35
 Dim x
 If Cells(i, 1) <> Cells(i + 1, 1) Then
    x = Cells(i, 1)
    Cells(i, 1) = Cells(i + 1, 1)
    Cells(i + 1, 1) = x
 End If
 Next i
     Columns("A:D").Select
      With ActiveWorkbook.Worksheets(1).Sort.Apply
    End With
 Dim s, c As Double
  c = 0
     Dim k As Integer
     For k = 2 To 35
     c = c + (Cells(k + 1, 2) - Cells(k, 2)) * (Cells(k + 1, 3) + Cells(k, 3))
     Next k
     s = c / 2
     If Round(s, 4) = 4507.293 Then
     MsgBox s
     End If
End Sub

代码需注意的,总数为34个坐标,根据实际需要更改 

For i = 2 To 35
实验面积为
Round(s, 4) = 4507.293
根据需要更改
* 没有采用冒泡法,只是更改顺序,恐有不足

 

posted @ 2022-06-22 14:24  橙香夜雨  阅读(561)  评论(0编辑  收藏  举报