A typical mathematician would probably say,
"does the line segment intersect the circle/sphere or its interior?"

I too took "circle" to mean the "boundary of the circle",
the points (x,y) which satisfy (*:R)=(x-Cx)+&*:(y-Cy) ;
to include the interior, the equation changes to
(*:R)>:(x-Cx)+&*:(y-Cy) . (C=(Cx,Cy) is the center.)



----- Original Message -----
From: Henry Rich <[email protected]>
Date: Thursday, October 7, 2010 4:58
Subject: Re: [Jprogramming] Puzzle: line-circle/sphere intersection
To: Programming forum <[email protected]>

> I intend that a segment wholly inside the circle/sphere to be 
> counted as 
> intersecting.  In other words, the circle/sphere is solid 
> and we want to 
> know if the segment touches any of it.
> 
> Henry Rich
> 
> On 10/7/2010 7:52 AM, R.E. Boss wrote:
> > That was bad reading from my side.
> > The formulas should be:
> >
> > ((S-C)<R)*.((E-C)<R) -...@+. ((S-C)>R)*.((E-C)>R)
> >
> > D=: +&.*:/"1 (S,:E)-"1 C
> >
> > (D<R) -...@+.&(*./) D>R
> >
> > Apart from that, the mathematics is not correct either. I will 
> give it
> > another thought.
> >
> >
> > R.E. Boss
> >
> >
> >> -----Oorspronkelijk bericht-----
> >> Van: [email protected] [mailto:programming-
> >> [email protected]] Namens Bo Jacoby
> >> Verzonden: donderdag 7 oktober 2010 13:02
> >> Aan: Programming forum
> >> Onderwerp: Re: [Jprogramming] Puzzle: line-circle/sphere 
> intersection>>
> >> Hello Boss.
> >>
> >> I do not understand your notation. Henry wrote "startpoint S 
> and endpoint
> >> E". You wrote "endpoints A and B", but you use E in your 
> pseudo code.
> >> Please explain.
> >>
> >> It seems to me that you must compute the distances (s) from C 
> to S, (e)
> >> from C to E and (p) from C to the closest point P, (the 
> perihelion), and
> >> you must determine (b) if P is between S and E. Intersection 
> occurs if
> >> (s<R and e>R) or (s>R and e<R) or (b and p<R and 
> (s>R or e>R)).
> >>
> >> --- Den tors 7/10/10 skrev R.E. Boss<[email protected]>:
> >>
> >> Fra: R.E. Boss<[email protected]>
> >> Emne: Re: [Jprogramming] Puzzle: line-circle/sphere intersection
> >> Til: "'Programming forum'"<[email protected]>
> >> Dato: torsdag 7. oktober 2010 09.49
> >>
> >> Since the word 'intersect' is used, I assume you mean the 
> boundary of the
> >> circle/sphere (and not the area), so that a line segment 
> which is
> >> completely
> >> inside is not intersecting. One point at the boundary means 
> intersecting,>> I
> >> assume.
> >> So the segment is not intersecting if and only if it is 
> completely inside
> >> or
> >> completely outside the circle/sphere.
> >>
> >>
> >> If the line segment is given by the endpoints A and B, the 
> pseudo code is
> >> rather straightforward:
> >>
> >> ((A-E)<R)*.((B-E)<R) -...@+. ((A-E)>R)*.((B-E)>R)
> >>
> >> so ones gets
> >>
> >> D=: +&.*:/"1 (A,:B)-"1 E
> >>
> >> (D<R) -...@+.&(*./) D>R
> >>
> >> (untested)
> >>
> >>
> >> R.E. Boss
> >>
> >>
> >>> -----Oorspronkelijk bericht-----
> >>> Van: [email protected] [mailto:programming-
> >>> [email protected]] Namens Henry Rich
> >>> Verzonden: woensdag 6 oktober 2010 22:54
> >>> Aan: Programming forum
> >>> Onderwerp: [Jprogramming] Puzzle: line-circle/sphere intersection
> >>>
> >>> Given circle/sphere with center C and radius R, and a line-
> segment with
> >>> startpoint S and endpoint E, write the J code to tell 
> whether the
> >>> line-segment intersects the circle/sphere.
> >>>
> >>> R is an atom, the rest are lists with 2 or 3 atoms.
> >>>
> >>> This problem arises in collision detection for games and 
> simulators, or
> >>> if you are trying to see whether a path intersects a round 
> obstacle.>>>
> >>> I found a solution whose brevity surprised me.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to