VB+Surfer绘制等值线图。
Dim objSurfer, objPlot, objMapFrame As Object
Private Sub cmdRun_Click()
Dim strInFile, strGridFile, strOutFile As String
On Error Resume Next
With dlgCommon1
.DialogTitle = “打开数据文件”
.Flags = 0
.CancelError = True
.FileName = “”
.Filter = “数据文件 (*.txt;*.dat;*.xls)|*.txt;*.dat;*.xls”
.ShowOpen
If Len(.FileName) = 0 Then ‘如果没有文件名则退出
Exit Sub
End If
strInFile = .FileName ‘获取选中的文件名
End With
strGridFile = Left(strInFile, Val(InStrRev(strInFile, “.”)) – 1) + “.grd” ‘把扩展名改为.grd
Set objSurfer = CreateObject(“Surfer.Application”) ‘创建Surfer对象
objSurfer.Visible = False ‘surfer软件本身不在前台显示
objSurfer.GridData DataFile:=strInFile, Algorithm:=srfKriging, _
DupMethod:=srfDupNone, ShowReport:=False, OutGrid:=strGridFile ‘把离散的数据文件转换为格网文件
Set objPlot = objSurfer.Documents.Add(srfDocPlot) ‘创建srf文档
Set objMapFrame = objPlot.Shapes.AddContourMap(strGridFile) ‘创建等值线图并添加到文档
objPlot.Export FileName:=Left(strInFile, Val(InStrRev(strInFile, “.”)) – 1) + “.bmp” ‘输出bmp
Picture1.Picture = LoadPicture(Left(strInFile, Val(InStrRev(strInFile, “.”)) – 1) + “.bmp”) ‘显示bmp
End Sub
Private Sub Form_Unload(Cancel As Integer)
objSurfer.Quit
Set objSurfer = Nothing
End Sub
把Set objMapFrame = objPlot.Shapes.AddContourMap(strGridFile)
改成Set objMapFrame = objPlot.Shapes.AddSurface(strGridFile)
即可实现三维图