Fix a bug in the ellipse overlap area computation.
authorGreg Burri <greg.burri@gmail.com>
Mon, 21 Dec 2015 22:34:46 +0000 (23:34 +0100)
committerGreg Burri <greg.burri@gmail.com>
Mon, 21 Dec 2015 22:34:46 +0000 (23:34 +0100)
Parasitemia/Parasitemia/EEOver.fs

index 1a6bb5f..ef21051 100644 (file)
@@ -286,6 +286,7 @@ let private fourintpts (xint: float[]) (yint: float[]) (a1: float) (b1: float) (
     if ellipse2tr xmid ymid aa bb cc dd ee ff < 0.0
     then
         area2 <- 0.5 * (a1b1 * (theta.[1] - theta.[0]) - abs (xint.[0] * yint.[1] - xint.[1] * yint.[0]))
     if ellipse2tr xmid ymid aa bb cc dd ee ff < 0.0
     then
         area2 <- 0.5 * (a1b1 * (theta.[1] - theta.[0]) - abs (xint.[0] * yint.[1] - xint.[1] * yint.[0]))
+        area3 <- 0.5 * (a1b1 * (theta.[3] - theta.[2]) - abs (xint.[2] * yint.[3] - xint.[3] * yint.[2]))
         area4 <- 0.5 * (a2b2 * (theta_tr.[2] - theta_tr.[1]) - abs (xint_tr.[1] * yint_tr.[2] - xint_tr.[2] * yint_tr.[1]))
 
         if theta_tr.[3] > theta_tr.[0]
         area4 <- 0.5 * (a2b2 * (theta_tr.[2] - theta_tr.[1]) - abs (xint_tr.[1] * yint_tr.[2] - xint_tr.[2] * yint_tr.[1]))
 
         if theta_tr.[3] > theta_tr.[0]