wade wrote:
> wade wrote:
> > pramod wrote:
> > > Karas: Can you please explain your code?
> >
> > I'll try.
>
> Sorry, I was explaining Karthik's method which seems to be correct, not
> Karas's code, which seems to be incorrect.
>
> Karas's method is to sort the endpoints in order of increasing angle
> and then run:
>
> for (i = 0; i < (2 * v.size()); i++)
>       {
>         if (ep[i].start())
>           tot -= endNotSeen++;
>         else
>           tot += --endNotSeen;
>       }
>
>
>     return(tot);

Oops, sorry, should be:

    int endNotSeen = 0, tot = 0;

    for (i = 0; i < (2 * v.size()); i++)
      {
        if (ep[i].start())
          endNotSeen++;
        else
          {
            endNotSeen--;
            tot += endNotSeen;
          }
      }

    return(tot);


> Suppose I have three chords.  Their endpoint angles (in degrees) are
>   A {1,3}
>   B {2,5}
>   C {4,6}
>
> There are two intersections (AxB and BxC), but with Kara's method, at
> the bottom of each loop iteration, I see values for {ep[i].theta,
> ep[i].start, endNotSeen, tot}
>
> {1,T,1,0}
> {2,T,2,-1}
> {3,F,1,0}
> {4,T,2,-1}
> {5,F,1,0}
> {6,F,0,0}
> 
> For a final, incorrect, result of zero intersections.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---

Reply via email to