old mate

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
private MateResult mate(Edge e, ArrayList<Point> s) {
Point bestp = null;
double t = Double.MAX_VALUE, bestt = Double.MAX_VALUE;
Edge f = e;
f = f.rot();
System.out.println("search mate for edge: " + e);
//запрос к дереву центр - середина ребра, радиус меняем от половины ребра до 800 * sqrt(2)
for (int i = 0; i < s.size(); i++) {
if (s.get(i).classify(e) == Position.RIGHT) {
Edge g = new Edge(e.dest, s.get(i));
g = g.rot();
IntersectResult resu = f.intersect(g, t);
if (resu.val < bestt) {
bestp = s.get(i);
bestt = resu.val;
}
}
}
if (bestp != null) {
System.out.println("found point in mate: " + bestp);
return new MateResult(true, bestp);
}
System.out.println("didn't found point in mate");
return new MateResult(false, null);
}