//产生相应模块 public well2d Create_Vertical_Well(PO center) { well2d well = new well2d(center.x, center.y); well.GetOGL(PAINT); well.Set_ge_pl(this.Get_ge_pl()); //well.Set_initial_pl(this.initial_pl); well.Generate_eadge(); model_l.Insert(well); return(well); }
private void DE_WW(well2d w1, well2d w2) { util u1 = new util(); if (!Is_Conflict(w1, w2)) { return; } else { CD_well_well(w1, w2); } }
//处理两个直井之间的冲突 private void CD_well_well(well2d w1, well2d w2) { util u1 = new util(); PO mid, p1, p2; mid = new PO(); mid.x = (w1.center.x * w1.ro + w2.center.x * w2.ro) / (w1.ro + w2.ro); mid.y = (w1.center.y * w1.ro + w2.center.y * w2.ro) / (w1.ro + w2.ro); p1 = u1.po_vertical(mid, w1.center, w2.center, 5); p2 = u1.po_vertical(mid, w2.center, w1.center, 5); u1.InFile(u1.tri_num, "-------------------IN well"); Cal_new_edge_po_insert(w1, p1, p2); u1.InFile(u1.tri_num, "-------------------end well1"); Cal_new_edge_po_insert(w2, p1, p2); u1.InFile(u1.tri_num, "-------------------end well"); }
public void START() { util u1 = new util(); well2d w1 = new well2d(); w1.GetOGL(PAINT); w1.Set_ge_pl(ge_p_l); w1.Set_initial_pl(initial_pl); center = w1.center; model_l.Insert(w1); plane = new plane2d(); plane.GetOGL(PAINT); plane.Set_ge_pl(ge_p_l); plane.Generate_eadge(); Create_boundary_model(); Generate_allmodel_edge_po(); DealModuleConflict(); plane.Get_model_l(model_l); //把模块链给plane plane.GenerateNetPo(); //plane根据自己的边界和模块产生点 Generate_allmodel_po(); //产生所有模块的点 }