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.
> >
> > Henry Rich
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> 
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> 
> 
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to