Commit 3cb9283

mo <mokha@cisco.com>
2017-05-24 19:14:00
remove previous solution.
1 parent b9f50dd
Changed files (1)
spec/visible_points_spec.rb
@@ -78,50 +78,14 @@ describe "visible points" do
 
   def angle_for(x, y)
     degrees = radians_to_degrees(Math.atan(y.abs.to_f / x.abs.to_f))
-    # quadrant 1
-    if x >= 0 && y >= 0
-      return degrees
-    end
-
-    # quadrant 2
-    if x < 0 && y > 0
-      return degrees + 90
-    end
-
-    # quadrant 3
-    if x <= 0 && y <= 0
-      return degrees + 180
-    end
-
-    # quadrant 4
-    if x > 0 && y <= 0
-      return degrees + 270
-    end
+    return degrees if x >= 0 && y >= 0 # quadrant 1
+    return degrees + 90 if x < 0 && y > 0 # quadrant 2
+    return degrees + 180 if x <= 0 && y <= 0 # quadrant 3
+    return degrees + 270 if x > 0 && y <= 0 # quadrant 4
 
     raise [x, y].inspect
   end
 
-  def visible_points(points, viewing_angle: 45)
-    # n + nlogn
-    angles = points.map { |(x, y)| angle_for(x, y) }.sort
-    counter = max = head = tail = 0
-
-    until head >= angles.size
-      current = angles[head]
-      max_angle = current + viewing_angle
-      max_angle = max_angle - 360 if max_angle > 360
-
-      until tail >= angles.size || angles[tail] > max_angle
-        tail += 1
-        counter += 1
-      end
-      max = counter if counter > max
-      head += 1
-      counter -= 1 if counter > 0
-    end
-    max
-  end
-
   def visible_points(points, viewing_angle: 45)
     angles = points.map { |(x, y)| angle_for(x, y) }.sort
     t = max = counter = 0
@@ -150,7 +114,6 @@ describe "visible points" do
   end
 
   it do
-    #points = [[1, 1], [1, -1], [1, 0]]
     points = [
       [29, 12], # 22.48 degrees
       [36, -99], # 340.02 degrees (360 - 340.02 = 19.98)