Ejemplo n.º 1
0
        private void PEBIGrid(PO p0)
        {
            util        u1 = new util();
            Node <LINE> la, lb, lc;
            PO          pk1, pk2, pk3;
            PO          p1, p2;

            la = p0.ll.Head;
            while (la.Next.Next != null)
            {
                lb = la.Next;
                lc = la.Next.Next;
                if (la.Data.p1 == p0)
                {
                    pk1 = la.Data.p2;
                }
                else
                {
                    pk1 = la.Data.p1;
                }
                if (lb.Data.p1 == p0)
                {
                    pk2 = lb.Data.p2;
                }
                else
                {
                    pk2 = lb.Data.p1;
                }
                if (lc.Data.p1 == p0)
                {
                    pk3 = lc.Data.p2;
                }
                else
                {
                    pk3 = lc.Data.p1;
                }
                p1 = u1.SearchOutHeart(p0, pk1, pk2);
                p2 = u1.SearchOutHeart(p0, pk2, pk3);
                PAINT.GetLL(new LINE(p1, p2));
                la = la.Next;
            }
            lb = la.Next;
            lc = p0.ll.Head;
            if (la.Data.p1 == p0)
            {
                pk1 = la.Data.p2;
            }
            else
            {
                pk1 = la.Data.p1;
            }
            if (lb.Data.p1 == p0)
            {
                pk2 = lb.Data.p2;
            }
            else
            {
                pk2 = lb.Data.p1;
            }
            if (lc.Data.p1 == p0)
            {
                pk3 = lc.Data.p2;
            }
            else
            {
                pk3 = lc.Data.p1;
            }
            p1 = u1.SearchOutHeart(p0, pk1, pk2);
            p2 = u1.SearchOutHeart(p0, pk2, pk3);
            PAINT.GetLL(new LINE(p1, p2));
            la = la.Next;
        }
Ejemplo n.º 2
0
        private void PEBIGrid(PO p0)
        {
            util        u1 = new util();
            Node <LINE> la, lb, lc;
            PO          pk1, pk2, pk3;
            PO          p1, p2;

            la = p0.ll.Head;
            while (la.Next.Next != null)
            {
                lb = la.Next;
                lc = la.Next.Next;
                if (la.Data.p1 == p0)
                {
                    pk1 = la.Data.p2;
                }
                else
                {
                    pk1 = la.Data.p1;
                }
                if (lb.Data.p1 == p0)
                {
                    pk2 = lb.Data.p2;
                }
                else
                {
                    pk2 = lb.Data.p1;
                }
                if (lc.Data.p1 == p0)
                {
                    pk3 = lc.Data.p2;
                }
                else
                {
                    pk3 = lc.Data.p1;
                }
                p1 = u1.SearchOutHeart(p0, pk1, pk2);
                p2 = u1.SearchOutHeart(p0, pk2, pk3);
                PAINT.GetLL_pebi(new LINE(p1, p2));
                la = la.Next;
            }
            PO pt1, pt2;

            pt1 = p0.ll.Head.Data.getanotherpo(p0);
            pt2 = p0.ll.Last.Data.getanotherpo(p0);
            if (Is_OutSide(pt1, pt2) != null)
            {
                lb = la.Next;
                lc = p0.ll.Head;
                if (la.Data.p1.IsEqualToMe(p0))
                {
                    pk1 = la.Data.p2;
                }
                else
                {
                    pk1 = la.Data.p1;
                }
                if (lb.Data.p1.IsEqualToMe(p0))
                {
                    pk2 = lb.Data.p2;
                }
                else
                {
                    pk2 = lb.Data.p1;
                }
                if (lc.Data.p1.IsEqualToMe(p0))
                {
                    pk3 = lc.Data.p2;
                }
                else
                {
                    pk3 = lc.Data.p1;
                }
                p1 = u1.SearchOutHeart(p0, pk1, pk2);
                p2 = u1.SearchOutHeart(p0, pk2, pk3);
                PAINT.GetLL_pebi(new LINE(p1, p2));
                //l2
                la = p0.ll.Last;
                lb = p0.ll.Head;
                lc = lb.Next;
                if (la.Data.p1.IsEqualToMe(p0))
                {
                    pk1 = la.Data.p2;
                }
                else
                {
                    pk1 = la.Data.p1;
                }
                if (lb.Data.p1.IsEqualToMe(p0))
                {
                    pk2 = lb.Data.p2;
                }
                else
                {
                    pk2 = lb.Data.p1;
                }
                if (lc.Data.p1.IsEqualToMe(p0))
                {
                    pk3 = lc.Data.p2;
                }
                else
                {
                    pk3 = lc.Data.p1;
                }
                p1 = u1.SearchOutHeart(p0, pk1, pk2);
                p2 = u1.SearchOutHeart(p0, pk2, pk3);
                PAINT.GetLL_pebi(new LINE(p1, p2));
            }
        }