Beispiel #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);
            }
        }