Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

If I have the following circle, with centre in red and a random point in the circle in blue. I know the radius ,r, length of d, and the angle p:

enter image description here I then create a a new green point and I know the length to the new green point (length=q) from the blue point. Now What I want to calculate is where the line q intersects the circle and at what angle it meets the tangent of the radius i.e.: the coordinates of the orange point and angle z, given that I also know k:

enter image description here

What is the quickest/most straightforward way to get orange point and z?

This is my first question so if any clarifications required please let me know.

share|cite|improve this question
up vote 1 down vote accepted

The blue point and green point uniquely determine a line; using its equation and the equation of your circle, figure out the coordinates of the orange point (note that the line in your picture will intersect the circle in two places; make sure you pick the right one).

Once you know where the orange point is, use calculus to find the tangent line to the circle at that point.

Finally, given the pink line and the line determined by the blue and green points, you should be able to determine the angle they intersect at.

share|cite|improve this answer
Thank you very mch for your answer. I think in data structures and this is something I am doing for many many points. i'm not really sure how to implement this although it may be the best option rather than successive/excessive trig calculations. – user1320502 Nov 7 '12 at 0:12

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.