代码都经过测试了,这里就不加截图了,因为现在已经不再用MO或是MapX了,竟然MO的安装程序都不到了,呵呵……
Private Sub DZX(ByVal ParValue() As Single, ByVal nHvalue As Integer, ByVal S0 As Single, ByVal nDec As Integer)
Dim DwX(), DwY() As Double
Dim Xb(,), Yb(,) As Double
Dim LB() As Integer
Dim X1, Y1 As Double
Dim Hs, Ht, Hw As Single
Dim c1, c2, c3, c4 As Single
Dim mk, M1 As Integer
Dim I, J, K, LD As Integer
Dim Key As Integer
Dim I1, I2, I3 As Integer
Dim Key2 As Boolean
Dim nDwXY As Integer
'Dim Zgrid() As Single
'Dim X0t, Y0t, Yc, Xc As Single
'Dim PicSubHeightT, PicSubWidthT As Single
Dim Mk1 As Single
K = 10
Dim m As Integer
Dim min, max As Double
min = Vertex(1).z
max = Vertex(1).z
For m = 1 To tPoints - 1
'min = Vertex(m).z
'max = Vertex(m).z
If Vertex(m + 1).z < min Then
min = Vertex(m + 1).z
End If
If Vertex(m + 1).z > max Then
max = Vertex(m + 1).z
End If
Next m
nHvalue = (max - min) / S0
'MsgBox(nHvalue)
ParValue(0) = min
For m = 1 To nHvalue
ParValue(m) = ParValue(m - 1) + S0
'MsgBox(ParValue(m))
Next m
nDwXY = 2 * HowMany
ReDim DwX(nDwXY + 1), DwY(nDwXY + 1), LB(nDwXY + 1)
ReDim Xb(HowMany, 2), Yb(HowMany, 2)
Dim vmin, vmax As Integer
vmin = 999999
vmax = -999999
For I = 0 To tPoints
If (Vertex(I).z > vmax) Then vmax = Vertex(I).z
If (Vertex(I).z < vmin) Then vmin = Vertex(I).z
Next I
Mk1 = 0
Dim value As Double
Dim iMark As Integer
For mk = 0 To nHvalue
value = ParValue(mk)
iMark = 1
If (value < vmin Or value > vmax) Then
Else
'插值
For I = 0 To HowMany
I1 = Tria