⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 基于VC编写的可嵌入WINDOWS的等值线的生成源码.
💻 TXT
字号:

等值线组件VB6调用说明:

程序编写环境为winxp/2k,visual studio 6.0。


包含的文件:

   readme.txt         	您正在阅读的文件
   com_ex.dll         	等值线组件,需要在您的机器上注册                      	
   form1.frm            vb6调用的示例源程序中的vb窗体文件
   project1.vbp         vb6调用的示例源程序中的vb工程文件
   project1.exe         vb6调用的示例源程序中的编译后的可执行文件
   sample.dat           样例数据文件
              

请先把com_ex.dll拷贝到本地机器上并注册,可以在命令提示符下输入:

     regsvr32 c:\com_ex.dll

来注册,这儿,假定com_ex.dll位于c盘的根目录下。

再把project1.exe和sample.dat拷贝到同一目录下,执行project1.exe,按其中的command1按钮即可。


==========================================================================================
等值线组件的属性和方法
~~~~~~~~~~~~~~~~~~~~~~
属性:
	startZ:追踪等值线的起始高程值
	endZ:	追踪等值线的终止高程值
	incZ:	高程值递增(减)量

方法:
	InitialContour(LPCSTR filename):用数据文件初始化并生成等值线
	GetContourCount(long *nCount):获取生成等值线的条数,也就是由上述三个属性决定的高程值的个数
	GetContourValueOf(long nContourIndex, double *Z):获取指定等值线的高程值
	GetSegCountOf(long nContourIndex, long *nSegCount):获取指定等值线的曲线数目,针对某一高程值的等值线的曲线可能有多条。
	GetPointsCountOf(long nContourIndex, long nSegIndex, long *nPointsCount):获取指定等值线中的某曲线的点数
	GetPointsOf(long nContourIndex, long nSegIndex, double *pPointsX, double *pPointsY):获取指定等值线中的某曲线的所有点的坐标



==========================================================================================
应用示例
~~~~~~~~
下面举出一个用VB6调用等值线组件的例子,目的在于根据输入框指定的数据文件生成等值线并显示
在picturebox控件内。在使用等值线组件之前,请确认该组件已在本机上注册。

用VB6新建一个标准工程,在工程中添加对等值线组件com_ex的引用,为初始窗体增加一个picturebox
控件,一个输入框和一个按钮并适当调整布局。给按钮的click事件输入如下代码:

Private Sub Command1_Click()
  Dim c As New COM_EXLib.contour
  Dim concount As Long, segcount As Long, pointcount As Long
  Dim x() As Double, y() As Double
  Dim xmin As Double, xmax As Double
  Dim ymin As Double, ymax As Double
  Dim i, j, tmpx, tmpy, tmpz

  '打开数据文件,获取数据的范围
  Open Text1.Text For Input As #1
    Input #1, tmpx, tmpy, tmpz
    xmax = tmpx
    xmin = tmpx
    ymax = tmpy
    ymin = tmpy
    Do While Not EOF(1)
      Input #1, tmpx, tmpy, tmpz
      If tmpx > xmax Then xmax = tmpx
      If tmpx < xmin Then xmin = tmpx
      If tmpy > ymax Then ymax = tmpy
      If tmpy < ymin Then ymin = tmpy
    Loop
  Close #1

  '根据数据范围设置picturebox的坐标
  Picture1.ScaleLeft = xmin
  Picture1.ScaleWidth = xmax - xmin
  Picture1.ScaleTop = ymax
  Picture1.ScaleHeight = -(ymax - ymin)

  '生成等值线并绘图
  c.InitialContour (Text1.Text)
  concount = c.GetContourCount
  For i = 0 To concount - 1
    segcount = c.GetSegCountOf(i)
    For j = 0 To segcount - 1
      pointcount = c.GetPointsCountOf(i, j)
      ReDim x(pointcount)
      ReDim y(pointcount)
      c.GetPointsOf i, j, x(0), y(0)
      For k = 0 To pointcount - 2
        Picture1.Line (x(k), y(k))-(x(k + 1), y(k + 1))
      Next k
    Next j
  Next i
  Set c = Nothing
End Sub

其中COM_EXLib.contour为等值线组件的对象类型,属性endZ,startZ,incZ使用缺省值。
程序运行的结果如下:
 

http://contour.nease.net
robter_x@163.com

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -