Exemplo n.º 1
0
        // 强弱相间点、强点用到
        private void strongWeakPt()
        {
            Pt.Clear();
            for (int j = 1; j < n; j++)
            {
                if (gx[j] < leftBound || gx[j] > rightBound || gy[j] < downBound || gy[j] > upBound)
                {
                    continue;
                }
                if (gx[j - 1] < leftBound || gx[j - 1] > rightBound || gy[j - 1] < downBound || gy[j - 1] > upBound)
                {
                    continue;
                }

                if (pwrDbm[j] - pwrDbm[j - 1] > 15 && pwrDbm[j] - pwrDbm[j - 1] < 25 && (Math.Abs(gx[j - 1] - gx[j]) < 50 && Math.Abs(gy[j - 1] - gy[j]) < 50))
                {
                    // 拉大距离
                    int k = j;

                    LTE.Geometric.Point pt  = new LTE.Geometric.Point(gx[k], gy[k], 0);
                    LTE.Geometric.Point pt1 = new LTE.Geometric.Point(gx[j - 1], gy[j - 1], 0);
                    StrongWeakPt        p   = new StrongWeakPt(ref pt1, ref pt, Math.Abs(pwrDbm[k] - pwrDbm[j - 1]));

                    p.strongPower = pwrDbm[j];
                    Pt.Add(p);
                }
                else if (pwrDbm[j - 1] - pwrDbm[j] > 15 && pwrDbm[j - 1] - pwrDbm[j] < 25 && (Math.Abs(gx[j - 1] - gx[j]) < 100 && Math.Abs(gy[j - 1] - gy[j]) < 100))
                {
                    int k = j;

                    LTE.Geometric.Point pt  = new LTE.Geometric.Point(gx[j - 1], gy[j - 1], 0);
                    LTE.Geometric.Point pt1 = new LTE.Geometric.Point(gx[k], gy[k], 0);
                    StrongWeakPt        p   = new StrongWeakPt(ref pt1, ref pt, Math.Abs(pwrDbm[k] - pwrDbm[j - 1]));
                    p.strongPower = pwrDbm[j - 1];
                    Pt.Add(p);
                }
            }
        }
Exemplo n.º 2
0
        private void strongWeakPt2()
        {
            Pt2.Clear();
            double d = -49;

            while (Pt2.Count < 20)
            {
                for (int j = 1; j < n; j++)
                {
                    if (pwrDbm[j] > d)
                    {
                        // 拉大距离
                        int k = j;

                        LTE.Geometric.Point pt  = new LTE.Geometric.Point(gx[k], gy[k], 0);
                        LTE.Geometric.Point pt1 = new LTE.Geometric.Point(gx[j - 1], gy[j - 1], 0);
                        StrongWeakPt        p   = new StrongWeakPt(ref pt1, ref pt, Math.Abs(pwrDbm[k] - pwrDbm[j - 1]));
                        p.strongPower = pwrDbm[j];
                        Pt2.Add(p);
                    }
                }
                d--;
            }
        }