/*
使用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>
效果见附件。