public double distance(PointS ps) { // расстояние между точками double dx = x - ps.X; double dy = y - ps.Y; return(Math.Sqrt(dx * dx + dy * dy)); }
double rad; // радиус множества // Конструктор выбирает из массива точки: public SetOfMassPoint(MassPoint[] collection, PointS ps, double rad) { List <MassPoint> list = new List <MassPoint>(); foreach (MassPoint mp in collection) { if ((mp.coord.distance(ps) <= rad)) { list.Add(mp); } } set = list.ToArray(); this.rad = rad; }
// Реализация метода интерфейса (сравнение расстояний): public int CompareTo(object ob) { PointS temp = new PointS(0, 0); if (this.distance(temp) < ((PointS)ob).distance(temp)) { return(1); } if (this.distance(temp) > ((PointS)ob).distance(temp)) { return(-1); } return(0); }
double mass; // масса public MassPoint(PointS ps, double mass) { coord = ps; this.mass = mass; }