Пример #1
0
        public override void GenerateNetPo()
        {
            float L, li, d, sof, distance1, distance2;     //sof是初始偏差值
            PO    tmp, po;

            PAINT.GetLL(l0);
            util u1 = new util();

            show_edge_l();
            L   = l0.Length();
            sof = (float)((L - System.Math.Floor(L / dx) * dx) / 2);
            for (int i = 1; i <= System.Math.Floor(L / dx) - 1; i++)
            {
                li        = (float)(sof + i * dx);
                tmp       = new PO();
                tmp.x     = (l0.p1.x * (L - li) + l0.p2.x * li) / L;
                tmp.y     = (l0.p1.y * (L - li) + l0.p2.y * li) / L;
                distance1 = Cal_distance_po_edge(tmp, u1.po_vertical(tmp, l0.p1, l0.p2, dy));
                distance2 = Cal_distance_po_edge(tmp, u1.po_vertical(tmp, l0.p2, l0.p1, dy));
                if (distance1 > distance2)
                {
                    distance1 = distance2;
                }
                po = u1.po_vertical(tmp, l0.p1, l0.p2, distance1 * 1 / 2);
                ge_p_l.Insert(po);
                PAINT.GetPL(po);
                po = u1.po_vertical(tmp, l0.p2, l0.p1, distance1 * 1 / 2);
                ge_p_l.Insert(po);
                PAINT.GetPL(po);
            }
        }
Пример #2
0
        int nd;         //井段分割数,井段上网格个数(包括两侧的圆心所在的网格);
        public h_well2d(LINE l1)
        {
            util u1 = new util();

            edge_pl   = new LinkList <PO>();
            l1.p1.key = 1;
            l1.p2.key = 1;
            l0        = l1;
            nr        = 4;
            nsta      = 8;
            nd        = (int)(l0.Length() / 1.0f);
            ri        = 1;
            ro        = 2;
            type      = 4;
        }