等值线绘制.ppt
文本预览下载声明
基于网格序列法的等值线抽取 张永和 5.20 基本思想 用网格划分数据场 在每个单元内绘制等值线 所有单元内的等值线构成整个数据场的等值线 绘制网格内的等值线 预设:设置等值线的函数值Ft 标志:对于网格的4个顶点,用“+”标志其函数值大于Ft,用“-”标志其函数值不大于Ft 识别交点边及连接方式:根据标志的分布(有4类)识别网格跟实际等值线相交的边(交点边)及交点的连接方式 估计交点:应用插值法(如线性插值法)估算交点边上网格跟实际等值线的交点,作为绘制所用的连接点 绘制:按步骤3连接交点 识别交点边及连接方法 按标志的分布可将连接方法分为4类: 1. 全为“+”或“-” ( “-”的数目为0或4),无等值线段; 2. 只有一个顶点为“+”或“-”( “-”的数目为1或3),有一条等值线段 识别交点边及连接方法连接方法2 识别交点边及连接方法连接方法3 3. 有且只有两个相邻的顶点为“+”或“-”( “-”的数目为2),有一条等值线段 识别交点边及连接方法连接方法3 识别交点边及连接方法连接方法4 有且只有两个相对的顶点为“+”或“-”( “-”的 数目为2),有两条等值线段 存在两种连接方法(二义性) 识别交点边及连接方法连接方法4:消除二义性的方法(1) 二义性问题本质:启发信息不足,即只用4个顶点识别连接情况必然会存在局限性 解决方法:增加辅助点消除二义性 假设:网格内的函数值的变化是双线性的,即等值线段在单元内是双曲线 辅助点:1,双曲线渐进线交点 2,对角线交点(简化的策略) 识别交点边及连接方法连接方法4:消除二义性的方法(2) 识别交点边及连接方法连接方法4 实例 f(x1,x2)=cos(x1)*cos(x2) 实例 f(x1,x2)=cos(x1)*cos(x2) 总结 复杂度为O(网格数目) 优点:复杂度跟等高线无关;等值线分布情况不知时也适合使用;可识别预定精度下所有的等值线 缺点:只能通过增加网格数目来提高精度,从而影响算法效率 基于网格序列法的等值线抽取的改进方法 改进网格划分方法(如单元剖分法) 改进交点的连接方法(如双三次Hermite插值法) 仿真程序 VC++ OpenGL Nehe模板程序(/) OpenGL画线代码 glBegin(GL_LINES); glVertex3f(x0,y0,z0); glVertex3f(x1,y1,z1); … glEnd(); * * - + + + - + + - - + - + - + - + - + - + + + + - - - - + + - + main MyFun 视点控制 绘制 输入函数(未) 计算函数值 交互 *
显示全部