/* 使用vrml三维模型语言构建油田【井斜图】和【连井图】方案: 包括: 1.井身轨迹。 2.垂直投影、水平投影、垂直填充线、水平填充线。 3.靶点(分圆靶、椭圆吧、矩形靶,并标注靶点名称,靶点半径) 4.设计轨道:当前井的设计轨道。 5.邻井:一定半径范围内的邻井,包括:邻井名称和井身轨迹。 6.位偏移:靶点位移和井底相对于井口的位移。 7.连井图:根据层位信息绘制若干口井的连井图,将相同的层位使用同一颜色直线连接。 8.断层:某口井如果有断层,则标注一条红色斜线。 方案概述:使用vrml语言的PROTO扩充节点MyCell,自定义参数和方法,实现井斜图的绘制。 */ //MyCell节点结构: PROTO MyCell[ p_distance_CellToGround 100 #//井底地面 到 井底的距离 默认为100米 p_ground_cell_sum 0 #//井底地面的X轴正方向上单元格数量 (其他方向一样)默认为井的水平最远距离除以单元格宽度 p_ground_cell_width 200 #//井底地面单元格的宽度 默认为100米 p_y_biaochi_kedu 100 #//Y轴标尺刻度间隔 默认为100米 即深度每下沉100米就标一个刻度 p_cell_spine_str "" #//井身轨迹坐标(字符串格式,注意:不带左右[]符号) p_cell_desing_spine "" #//井身轨迹设计坐标(字符串格式,注意:不带左右[]符号) p_y_tianchong_start_height 0 #//Y轴填充开始深度距离(从起点开始便画垂直填充线 默认为从井深度的一半开始) p_y_tianchong_kedu 100 #//Y轴填充距离(深度没下沉100米就画一条垂直填充线 实际填充线总数效果小于等于预计总数) p_node_color_mfcolor [1 1 0,1 0 0,1 0.5 0.5,0 1 0] #//分别是:井斜图颜色,水平投影颜色,垂直填充线颜色 ,轨道设计颜色 p_cell_name "井眼" #//井的名称 p_touying_type "none" # //空间投影的样式(all全部,h水平填充,v垂直填充,none都不显示) p_fill_line_style "none" #//空间填充线的样式(all全部,h水平填充,v垂直填充,none都不显示) p_show_target "false" #//是否显示靶点 true or false p_show_y_zhou "false" #//是否显示Y轴 p_show_nearby_cell "false" #//是否显示临井 p_show_target_touyin "false" #是否显示靶点的水平投影 默认为false不显示 p_show_design_spine "false" #//是否显示设计轨道 p_target_type "02" #//靶点类型(01=点靶,02=圆靶,03=椭圆靶 04=矩形靶) p_target_spine "" #//靶点的空间坐标信息(可能有多个) p_target_radius "" #//圆靶靶点 p_target_sacles "" #//矩形靶水平宽度和垂直半高 p_target_names " (A靶),(B靶),(C靶),(D靶),(E靶),(F靶)" #//各个靶点的名字 (默认6个靶点名字为ABCDEF) p_nearby_cells_spine "" #//临井轨道 (使用;好分隔)) p_nearby_cells_spine_trans "" #//临井井口相对于当前井口的偏移 (使用,好分隔)) p_nearby_cell_names "" #//临井名称(使用,好分隔)) p_lines_scale 1 #//各个线性的缩放比例 只给Extrusion节点内部sacle使用 p_show_pos_distance "false" #//是否显示靶点和井底位偏移 p_ljt_spines "" #//连井图井眼轨迹坐标 p_ljt_spine_trans "" #//连井图相对于当前井口的偏移 (使用,好分隔)) p_show_LJT "false" #//是否显示连井图 p_show_LJT_depth "false" #//是否显示层位深度 p_show_all "false" #//显示所有的东西 ]{ url "vrmlscript: /** * 通过字符串创建Node节点并添加到Root 的children中 * @param str 构成节点的字符串(不允许有双引号\"出现) * @return 一个TransForm的字符串 */ function add(str){..} //TODO 初始化方法(自动执行) function initialize(){..} //TODO 初始化参数 function initParams(){..} //TODO 绘制井底地面 function drawGround(){..} //TODO 绘制垂直投影 function drawCZTY(){..} //直线连井图 function drawZXLJT(){..} //TODO 绘制井底地面 function drawGround(){..} //TODO 井身轨迹 function drawCell(){..} //TODO 绘制Y轴 function drawY(){..} //TODO 垂直标尺 深度标尺 function drawYBiaoChi(){..} //TODO 绘制水平投影图 function drawSPTY(){..} //TODO 绘制垂直填充线 function drawFillLines(){..} //TODO 绘制垂直投影图 function drawCZTY(){..} //TODO 绘制当前最佳视点 function drawBestView(){..} //TODO 靶点 function drawTarget(){..} //设计轨道 function drawCellDesign(){..} //邻井 function drawNearByCells(){..} " } //井斜图应用: MyCell{p_cell_name "X8" p_target_names " A,T31,B,T33" p_target_type "01" p_show_nearby_cell "false" p_touying_type "all" p_show_all "true" p_ground_cell_width 200 p_ground_cell_sum 10 p_target_sacles "30 10,20 15" p_target_radius "40,40" p_target_spine "-319.070 -1320 -179.46,-569.070 -1600 -305.46," p_nearby_cells_spine "0 0 0,0 -350.0 0,-0.08 -375.0 0.06,-0.23 -400.0 0.05,-0.41 -425.0 -0.01,-0.37 -450.0 -0.17,...;" p_nearby_cells_spine_trans "1424.460 0 -536.070,-846.540 0 409.930,848.410 0 -671.520,1000 0 -1000" p_nearby_cell_names "X6,龙1,X7," p_lines_scale 10 p_cell_desing_spine "0 0 0,0 -0.0 -0.0,0 -600.0 -0.0,-6.12 -699.68 -3.33,-24.37 -797.41 -13.26,-36.84 -841.48 -20.05,...." p_cell_spine_str "0 0 0,0 -325.0 -0.0,0.19 -350.0 -0.08,0.5 -375.0 0.19,0.96 -399.99 0.57,1.44 -424.98 1.01,..." } //连井图应用: MyCell{ p_ljt_spines "cellName=贵州2-4,trans=0 0 0,vdepth=1738.0,fcxx=Ny1:350&E2s:1120&E2d:1360&E1f4:1556.5&E1f3:1738&,breakDepth=0;cellName=贵州2-5,trans=1.550 0 4.600,vdepth=1770.0,fcxx=Ny:351.5&E2s:1074&E2d:1420.5&E1f4:1576&E1f3:1770&,breakDepth=0;cellName=贵州X7,trans=3567.340 0 1385.880,vdepth=1810.0,fcxx=E2s2:745.5&E2s1:986.5&E2d2:1191.5&E2d1:1255&E1f4:1431&E1f3:1635&E1f2:1810&,breakDepth=874,;cellName=贵州3-1,trans=3187.880 0 -782.220,vdepth=1595.0,fcxx=Qd:70&Ny:285&E2s2:738&E2s1:1021&E2d2:1107.5&E2d1:1358&E1f4:1551.5&E1f3:1595&,breakDepth=0;" p_cell_spine_str "0 0 0,0 -325.0 0,0.19 -350.0 0.08,0.5 -375.0 -0.19,0.96 -399.99 -0.57,1.44 -424.98 -1.01,1.9 -449.97 -1.48,2.39 -474.96 " p_show_LJT "true" p_lines_scale 5 } //html引用vrml文件:使用embed标签引入 <embed src="mycell.wrl"></embed>
效果见附件。