Intersection points of a line on a circle

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
8 replies · 7K views
TOdorus
Messages
5
Reaction score
0
Hi all,

I have a bit of an algebraic problem, and my lack of attention during math is starting to show. I was experimenting with hit detection based on lines for a simple shooting game, and the enemies bieng circulair.

I already have a function to check the distance from the line to the circles centre, so I already know that there is a intersection (or hit). I also would like to know where it intersects, for graphics and some extra physics.

So here's what I got:

Known
r
m
b

so these can be considered constant

Equitions so far

y = mx+b
r^2 = y^2 + x^2

this gives:
r^2 = (mx+b)^2 + x^2

And then my troubles begin, because writing that out would give:
r^2 + b^2 = x^2 + mx^2 + 2mbx

Googling around tells me that this is the way to go, and you should get a quadratic function, but I don't know how to solve this kind of equation. Can anybody help out? I hope to finish a prototype soon.

Tnx in advance,

TO
 
Physics news on Phys.org
The equation

[tex]x^2 + y^2 = r^2[/tex]

implies that the center of the circle is at the origin of your coordinate system. You propably should be using the the more general form:

[tex](x-k)^2 + (y-h)^2 = r^2[/tex]

where the center of the circle is at (k,h)
 
Yes, but that would complecate the problem even more. I was thinking of transforming the line function instead to simplify it, but if anyone knows the solution, that would be better. It would make a more efficient function.
 
Google quadratic formula.

If your circles aren't at the origin, and they're probably not, you'll have to use the more general form [tex]\int[/tex] suggested.

The other option you can do is make (k,h) the 'origin' and have the equation of the line adjusted appropriately.
 
You need to but your quadratic in the standard form

[tex]ax^2 + bx +c =0[/tex]

Then apply the quadradic formula. It is essential that you use a consistent coordinate system. That means that the expression for the line and the circle should plot correctly if you were to draw them out.
 
Integral said:
You need to but your quadratic in the standard form

[tex]ax^2 + bx +c =0[/tex]

Exactly. But how do I go about, getting it to this form?

[tex]r^2 = x^2 + y^2[/tex]
[tex]r^2 = x^2 + (mx+b)^2[/tex]
[tex]r^2 = x^2 + mx^2 + 2*bmx + b^2[/tex]

I have no idea how I can get that to [tex]ax^2 + bx +c =0[/tex]
 
[tex]r^2=x^2+mx^2+2bmx+b^2=(1+m)x^2+(2bm)x+b^2[/tex]

Letting a=(1+m), b=2bmx and c=b^2 you will have it in 'standard form'.

The important thing to realize that there are two different b's and not getting confused.
 
ZioX said:
[tex]r^2=x^2+mx^2+2bmx+b^2=(1+m)x^2+(2bm)x+b^2[/tex]

Letting a=(1+m), b=2bmx and c=b^2 you will have it in 'standard form'.

Ah, thanks a bundle! I overlooked the possibility of [tex]x^2 + mx^2 = (1+m)x^2[/tex]

ZioX said:
The important thing to realize that there are two different b's and not getting confused.

No need to worry about me getting confused over that: I did a ton of these when I was 16. The problem is, that was 7 years ago :-p

I'm going to give [tex](x-k)^2 + (y-h)^2 = r^2[/tex] a try after lunch.
 
[tex]r^2 = (x-k)^2 + (y-h)^2[/tex]
[tex]r^2 = x^2 -2kx + k^2 + y^2 -2hy + h^2[/tex]
[tex]r^2 = x^2 -2kx + k^2 + (mx+b)^2 -2h(mx+b) + h^2[/tex]
[tex]r^2 = x^2 -2kx + k^2 + m^2x^2 + 2bmx + b^2 - 2hmx - 2hb + h^2[/tex]

[tex]0 = (1-2k+m^2)x^2 + (2bm-2hm)x + (k+b^2-2hb+h^2-r^2)[/tex]

[tex]D = b^2 - 4ac[/tex]
[tex]D = (2bm - 2hm)^2 - 4(1-2k+m^2)(k+b^2-2hb+h^2-r^2)[/tex]

No real need to evaluate D though, as there are always two intersections in my case.

[tex]x = \frac{-b+\sqrt{D}}{2a}[/tex] or
[tex]x = \frac{-b-\sqrt{D} }{2a}[/tex]
[tex]x = \frac{-(2bm-2hm)+\sqrt{D}}{2(1-2k+m^2)}[/tex] or [tex]x = \frac{-(2bm-2hm)+\sqrt{D}}{2(1-2k+m^2)}[/tex]

Is this right?
 
Last edited: