[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [pygame] Finding the exact point of collision between a circle and a line
Hi Ian,
I haven't tested your suggestion yet. But it really looks that this is
what I was looking for. Thank you very much. =)
-Thiago
On Sun, Feb 1, 2009 at 8:20 PM, Ian Mallett <geometrian@xxxxxxxxx> wrote:
> Hello,
>
> If you know the distance it's a good deal simpler. It's quite easy to find
> and store, if you have the position. It looks like you can use
> line_segment_point_distance().
>
> Let d1 be the distance to the line at t0.
> Let d2 be the distance to the line at t1.
> Let x be the spell's position in x.
> Let y be the spell's position in y.
> Let xD be the speed in the x direction. It is linear.
> Let yD be the speed in the y direction. It is linear.
>
> if d2 < radius: #the spell hit the line
> #fraction of frame at collision
> #I figured this out through linear interpolation. Given constant time
> and known distances,
> #here's how you find an imaginary frame where distance = radius in the
> middle.
> portion = float(d1-radius)/float(d1-d2) #multiply by 100 to get % of
> time until next frame
> position_of_collision = [x + xD*portion,
> y + yD*portion]
>
> I hope this is what you're looking for.
> Cheers,
> Ian
>
>