com_ex

所属分类:数据结构
开发工具:Visual C++
文件大小:37KB
下载次数:45
上传日期:2005-05-23 07:48:52
上 传 者xiong777
说明:  基于VC编写的可嵌入WINDOWS的等值线的生成源码.
(prepared by the VC can be embedded Windows contours of the generation source.)

文件列表:
Project1.exe (20480, 2004-03-05)
sample.dat (34592, 2004-03-05)
com_ex.dll (176186, 2004-03-04)
Form1.frm (2737, 2004-03-05)
Project1.vbp (760, 2004-03-05)

等值线组件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

近期下载者

相关文件


收藏者