// 强弱相间点、强点用到 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); } } }
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--; } }