matlab 河道水面线计算,河道水面线计算的可视化实现方法及软件
摘要:河道水面线推算是流域防洪和兴利规划的基础工作。笔者运用VB6.0计算机语言,编制了可视化的水面线推算程序,通过便捷的人机交互界面和方便的数据接口,提高了工作效率。本文介绍了可视化编程的思路及一些基本方法。
关键词:水面线推算,VB,可视化
1 引言
河道治理经常需要推算河道水面线。传统的计算方法有试算法和图解法,不仅十分烦琐,而且精度不高。随着计算机技术的快速发展和各种开发平台及应用软件的涌现,人们不仅摆脱了手工计算的繁复工作,实现了计算的程序化,而且,可视化开发平台为实现交互式演算创造了条件,极大地提高了工作效率。笔者运用VB6.0计算机语言编制了可视化水面线计算程序,在南水北调东线工程规划等项目中得到了应用,本文介绍了实现可视化计算的主要方法。
2 VB6.0简介
Visual Basic 6.0是基于Windows平台的可视化开发工具,实现了面向对象的编程,简单易学,特别便以设计人机交互界面及生成图形,实现计算过程和结果的可视化。
3 水面线推算方法
3.1 基本方程
根据伯努力能量方程式的理论,推算水面线基本公式为:
△Z=Q^2(α/2g(1/A2^2-1/A1^2)+(1/K^2)l)
3.2 推算方法
采用逐段试算法[1],根据工程或实际情况的需要,将需进行水面线计算的整个河段,分成若干个计算河段,从下游到上游对这些计算河段逐段进行计算求解,从而可得到整个河段的水面线。采用二等分迭代法进行计算。
3.3 断面特征数据计算
横断面数据文件采用通用格式,即桩号、断面点数、起点距、高程、起点距、高程…。
以各测点作已知水面或假定水面的垂线,形成了三角形、矩形或梯形断面,计算相应的面积和湿周,对计算方法来说矩形和三角形均为梯形的特例,均可利用相同的程序完成,考虑到规划阶段受资料限制,糙率不可能定得太细,且要进行多方案比较,要求快捷、简便,各分段(河段)只设深槽和滩地两种糙率。根据各梯形断面所处的位置,分别计算不同的糙率相应的流量模数(K)。
4 水面线计算的可视化实现
4.1 可视化功能
包括从断面数据文件读入数据,在“选断面特征值”窗体上绘出带有座标方格横断图,以鼠标点击横断图,分别确定过水断面的有效边界、滩地与深槽的分界点、深泓、两堤顶的位置,输入断面名称、糙率、纵断桩号及测量断面与平均流向相互不垂直的偏角(见图1);在“推算水面线”窗体内,生成纵断图,以鼠标点击选择任意上下游两断面进行之间的水面线计算,可随时改变起始断面水位、糙率、流量,将不同边界条件和水力参数的推算结果绘在纵断图上,便以比较和选择。点击纵断图可即时查询对应位置横断的平均流速、水位、堤顶高程等信息(见图2)。
4.2 可视化实现
(1)图形的生成
首先利用以下语句得到窗口的大小(象素个数),并适当缩小(*17/20)后,确定绘图的窗口。由于VB是以左上角为缺省原点,需通过必要的语句进行坐标系变换。
Height = Screen.Height * 17 / 20 ‘获得窗口大小
Width = Screen.Width ‘获得窗口大小
ScaleTop = Height * 0.85
ScaleLeft = -Width * 0.05
ScaleWidth = Width * 0.95
ScaleHeight = -Height * 1 ‘坐标系变换
w = Width * 0.8 ‘确定绘制断面的屏幕宽度
h = Height * 0.55 ‘确定绘制断面的屏幕高度
在确定绘制图形的窗口之后,为使测量空间坐标与屏幕坐标能够一一对应,并达到绘图窗口正好容纳下整个断面图,需计算两者之间的比例系数,以后都以该系数进行转换。以x1、y1代表最小空间坐标,以x2、y2代表最大值,则比例系数为:
kx = w / (x2 - x1)
ky = h / (y2 - y1)
线条绘制以循环执行Line语句实现。
(2)屏幕坐标的获取及空间坐标的转换
VB6.0提供了获取鼠标位置的语句,并对鼠标点击事件进行响应,利用此功能,可实现断面特征点(如深泓等)及纵断图中的横断面选择,进行相关数据查询,计算任意两测量点之间的距离和边坡。计算所有测量点与点击坐标的距离,最近的点即为所要的测量点。
获取鼠标位置的语句为:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Text = X ‘得到鼠标X坐标
Text2.Text = Y ‘得到鼠标X坐标
If Button = 1 Then ‘如果点击屏幕就转换为空间坐标
x0 = X / kx + x1
y0 = Y / ky + y1
End If
matlab 河道水面线计算,河道水面线计算的可视化实现方法及软件相关推荐
- matlab win7安装教程视频,matlab7.0安装 win7系统详细使用方法附软件下载 - 电脑教程...
MATLAB 7.0下载地址: 百度网盘下载地址:http://pan.baidu.com/share/link?shareid=414204&uk=2769186556 迅雷快传下载地址:h ...
- lisp 河道水面线计算_水面漂浮泡沫生活垃圾隔离拦载浮筒使用方法
水面漂浮泡沫生活垃圾隔离拦载浮筒使用方法 为切实打造市区优美水环境,市水*部门积*探索市区河道拦污.控污新方法,经过多次试验,成功探索出新的河道拦污方法.通过浙江柏泰安装新型拦污浮筒漂排,有效控河道水 ...
- ArcGIS基础实验操作100例--实验97计算河道方向坡度
本实验专栏参考自汤国安教授<地理信息系统基础实验操作100例>一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 空间分析篇--实验97 计算河道方向坡度 目录 一. ...
- 基于MATLAB改进Otsu阈值分割的车道线检测
基于MATLAB改进Otsu阈值分割的车道线检测 摘要:在判断车道偏离以防止车辆碰撞等危害时,车道标线检测需要通过图像处理来进行,检测方法是否适用于各种背景环境条件以及检测的及时性至关重要传统的Ots ...
- 【线上分享】边缘计算与云原生架构应用及实践解析
音视频类服务已逐渐成为人们日常生活中必不可少的内容,并且随着技术的进步,用户对体验的追求也越来越极致,对于延迟的容忍度越来越低,从而催生了边缘计算的发展,而边缘计算下什么技术框架可能是趋势,这就是云原 ...
- 【线上分享】边缘计算与云原生
音视频类服务已逐渐成为人们日常生活中必不可少的内容,并且随着技术的进步,用户对体验的追求也越来越极致,对于延迟的容忍度越来越低,从而催生了边缘计算的发展,而边缘计算下什么技术框架可能是趋势,这就是云原 ...
- [原创]物探小宽线坐标快速生成(平行线坐标互算 、点到线距离计算、两线交点计算等)...
界面如下: 下载地址:CSDN 功能简介: 主要是解决并简化各项目中坐标(特别是是斜测线坐标方程组)的重复脑残计算问题,降低脑残机率,为懒而生 1.对于斜线.规则线坐标理论快速生成等 2.两线交点的标 ...
- Arcgis实例操作19--面要素距离点最近的位置、线要素切割面、计算有毒气体的开敞空间面积
1.如何在面要素上找出距离线要素(直线)最近的位置? 1)面要素转折点. 打开[数据管理工具]|[要素]|[要素折点转点]工具,输入要素设置为"area",输出要素类设置为&quo ...
- 类和对象总结及用法 计算点到点距离 线与线的关系 计算三角形平行四边形面积周长 判断形状
1.类和对象简介 类和对象的关系:类是对象的抽象,而对象是类的特例,即类的具体表现形式. 类和对象的区别:类是对象的模板,类是抽象的不占用内存,对象是具体的,占用储存空间. 类中主要包括数据和成员函数 ...
最新文章
- android ViewPager滑动事件讲解
- python基础——if语句/条件控制
- 二层及三层MTU浅析
- SQL笔记-Oracle中varchar和varchar2的区别
- Linux学习8-CentOS部署自己本地的django项目
- 头条+腾讯 NLP 面经
- 当安防撞上AI风潮 会迸出怎样火花?
- 创业维艰--书摘+乱七八糟
- Java服务端支付宝对接(详细)
- arduino智能闹钟_要写一个Arduino的电子闹钟程序,板子是Arduino UNO,和一个实时钟的芯片DS1307,开发环境是Arduino-1.0.2...
- 一个故事轻松记忆常见252个英语字根(31~80)
- python统计人物出现次数_python实例:利用jieba库,分析统计金庸名著《倚天屠龙记》中人物名出现次数并排序...
- 【Cython】Cython 基本用法
- 干货|2021年以后人工智能的几点思考?
- EasyRecovery2023重新找回丢失的文件数据恢复软件
- 丁神去谷歌-北邮OJ416
- 从前慢-JavaScript之Web API-篇章4
- Mifare S50控制条件
- 2023最新软件测试学习思维导图(从小白到大师进阶之路)
- 学会4种方法,掌握端到端测试处理数据..