/// <summary> /// 生成穹窿模型侧面 /// </summary> /// <param name="fornix"></param> /// <param name="preFornix"></param> private static void createSide(Fornix fornix, Fornix preFornix, double FornixDip) { VertexCollection vcDown = new VertexCollection();//底面顶点集合 Vertex vertexUp, vertexDown; double dip = FornixDip; //根据产状生成底面顶点 for (int i = 1; i < fornix.outSide.countUpVers() - 1; ++i) { vertexUp = fornix.outSide.getUpver(i); vertexUp.calOccuurence(fornix.outSide.getUpver(i - 1), fornix.outSide.getUpver(i + 1), dip); vertexDown = new Vertex(); vertexDown.createDownVer(vertexUp); vertexDown.ID = _verNum++; vcDown.addVer(vertexDown); } vertexUp = fornix.outSide.getUpver(fornix.outSide.countUpVers() - 1); vertexUp.calOccuurence(fornix.outSide.getUpver(fornix.outSide.countUpVers() - 2), fornix.outSide.getUpver(0), dip); vertexDown = new Vertex(); vertexDown.createDownVer(vertexUp); vertexDown.ID = _verNum++; vcDown.addVer(vertexDown); vertexUp = fornix.outSide.getUpver(0); vertexUp.calOccuurence(fornix.outSide.getUpver(fornix.outSide.countUpVers() - 1), fornix.outSide.getUpver(1), dip); vertexDown = new Vertex(); vertexDown.createDownVer(vertexUp); vertexDown.ID = _verNum++; vcDown.addVer(vertexDown); //生成地层外侧面 fornix.createOutSideLowvers(vcDown); _verNum -= fornix.createOutSide(); //生成前一地层的内侧面 if (preFornix != null) { preFornix.createInSide(fornix); } }