コード例 #1
0
 private void simplifySection(int i, int j) {
   if ((i + 1) == j) {
     return;
   }
   seg.p0 = pts[i];
   seg.p1 = pts[j];
   double maxDistance = -1.0;
   int maxIndex = i;
   for (int k = i + 1; k < j; k++) {
     double distance = seg.distance(pts[k]);
     if (distance > maxDistance) {
       maxDistance = distance;
       maxIndex = k;
     }
   }
   if (maxDistance <= distanceTolerance) {
     for (int k = i + 1; k < j; k++) {
       usePt[k] = false;
     }
   } else {
     simplifySection(i, maxIndex);
     simplifySection(maxIndex, j);
   }
 }