Пример #1
0
        private void CD_po_together(fault2d f1, fault2d f2)
        {
            util u1 = new util();
            PO   f1s, f1d, f2s, f2d, ptm, p1t, p2t, p3t;

            f1s = f1.l0.p1;
            f1d = f1.l0.p2;
            f2s = f2.l0.p1;
            f2d = f2.l0.p2;
            //判断f1、f2的状态
            #region judge topo
            if (f1s.Me_to_po_length(f2d) == 0)
            {
                ptm = f2d;
                f2d = f2s;
                f2s = ptm;
            }
            //u1.InFile(u1.infopath, "ihere11");
            if (f1d.Me_to_po_length(f2s) == 0)
            {
                ptm = f1d;
                f1d = f1s;
                f1s = ptm;
            }
            //u1.InFile(u1.infopath, "ihere12");
            if (f1d.Me_to_po_length(f2d) == 0)
            {
                ptm = f1d;
                f1d = f1s;
                f1s = ptm;
                ptm = f2d;
                f2d = f2s;
                f2s = ptm;
            }
            //u1.InFile(u1.infopath, "ihere13");
            #endregion judge topo
            p1t     = u1.Po_vec_f(f1s, u1.cal_vec(f1s, f1d).unitVector(), 4);
            p2t     = u1.Po_vec_f(f2s, u1.cal_vec(f2s, f2d).unitVector(), 4);
            p3t     = new PO((p1t.x + p2t.x) / 2, (p1t.y + p2t.y) / 2);
            p1t.key = 1;
            p2t.key = 1;
            p3t.key = 1;
            PAINT.ll_tag.Insert(new LINE(f1s, p3t));
            PAINT.pl_tag.Insert(p1t);
            PAINT.pl_tag.Insert(p2t);
            PAINT.pl_tag.Insert(p3t);
            Cal_new_edge_po_insert(f1, f1s, p3t);
            Cal_new_edge_po_insert(f2, f2s, p3t);
        }
Пример #2
0
        public override void GenerateNetPo()
        {
            int   sitan;
            float PI = 3.1415926f;
            util  u1 = new util();

            sitan = 10;
            PO vec, vec2, pc;//沿井身

            vec  = new PO(0, 0, 1);
            vec2 = new PO();
            pi   = new PO();
            pj   = new PO();
            for (int i = 5; i < 20; i = i + 4)
            {
                for (int j = 0; j < sitan; j++)
                {
                    vec2.x = (float)System.Math.Cos(2 * PI * j / sitan);
                    vec2.y = (float)System.Math.Sin(2 * PI * j / sitan);
                    vec2.z = 0;
                    pc     = u1.Po_vec_f(u1.vec_f(vec, 0), vec2, i);
                    if (i == 17 && j == 1)
                    {
                        pi = pc;
                    }
                    if (i == 17 && j == 2)
                    {
                        pj = pc;
                    }
                    PAINT.GetPL(pc);
                    ge_p_l.Insert(pc);
                }
            }
            //PAINT.GetLL(new LINE(pi,pj));
        }
Пример #3
0
        public override void GenerateNetPo()
        {
            int   sitan;
            float PI = 3.1415926f;
            util  u1 = new util();

            sitan = 10;
            PO vec, vec2;//沿井身

            vec  = new PO(0, 0, 1);
            vec2 = new PO();
            pi   = new PO();
            pj   = new PO();
            pk   = new PO();
            for (int k = 0; k < 8; k = k + 2)
            {
                for (int i = -10; i < 20; i = i + 5)
                {
                    for (int j = 0; j < sitan; j++)
                    {
                        vec2.x = (float)System.Math.Cos(2 * PI * j / sitan);
                        vec2.y = (float)System.Math.Sin(2 * PI * j / sitan);
                        vec2.z = 0;
                        if (k == 6 && i == -10 && j == 1)
                        {
                            pi = u1.Po_vec_f(u1.vec_f(vec, i), vec2, k);
                        }
                        if (k == 6 && i == -10 && j == 2)
                        {
                            pj = u1.Po_vec_f(u1.vec_f(vec, i), vec2, k);
                        }
                        if (k == 6 && i == -5 && j == 2)
                        {
                            pk = u1.Po_vec_f(u1.vec_f(vec, i), vec2, k);
                        }
                        ge_p_l.Insert(u1.Po_vec_f(u1.vec_f(vec, i), vec2, k));
                    }
                }
            }
        }