typedef Point; // точкаint rho(Point x, Point y); // расстояние между точкамиconst int D; // радиус прореживанияQVector<Point> Points;QVector::iterator I = Points.begin();while (I != Points.end()) { QVector::iterator J = I + 1; while (J != Points.end()) { if (rho(*I, *J) > D) J = Points.erase(J); else ++J; } if (I != Points.end()) ++I;}
typedef Point; // точкаint rho(Point x, Point y); // расстояние между точкамиconst int D; // радиус прореживанияQVector<Point> Points;QVector::iterator I = Points.begin();while (I != Points.end()) {..
rho((x1,y2), (x2,y2)) = sqrt((x1-x2)^2+(y1-y2)^2)
(abs(x1-x2) < D/sqrt(2)) or (abs(y1-y2) < D/sqrt(2))
qreal D2 = D * D;...if ((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1) < D2))