The center of a circle

  1. Hi everybody,

    I ve got a question : is it possible to identify the center of a given cirle with only a compass?

    Thanks for reading
  2. jcsd
  3. No you need a ruler as well.

    Pick a point A on the circle. Draw a circle with center A and diameter less than that of the given circle. Mark off the two points B and C where this new circle intersects the given one. Join B and C with the line BC.

    Bisect BC. The midpoint is D. Draw a straight line through A and D and extend it until it meets the given circle again at E. AE is a diameter.

    Repeat this process for a second point on the given circle. Where the two diameters meet is the center.
  4. Thank you for answering.
    But the problem is without a ruler !!! It seems impossible. I have tried many times but failed.
  5. It works without a ruler, though only for a circle that's on a sheet of paper.
    Instead of using a ruler fold the paper to make a line visible.
  6. Well, it seems like a trick ! Let's say the circle is on a table. May be we need to prove it impossible to do so.
  7. It's great !. Thank you Jeroen.
    Anyway, how can we prove that friends?
  8. The method works by drawing a circle, picking two points on it, then draw a series of circles based on where the existing circles.
    The final answer is the intersection of the last two circles.

    All you need to do is write a big formula containing all these circles and resulting in the coordinates of the final intersection and then prove that "the_big_function(center_of_circle, radius_of_circle, point_1_on_circle, point_2_on_circle) = center_of_circle" is true for any input.

    This would be a start:
    Code (Text):
      float x
      float y

      point center
      float radius

    point intersect (circle ca, circle cb, point pn)
      returns intersection between ca and cb that is not pn

    float distance (point pa, point pb)
      returns distance between points pa and pb

    point pointoncircle (circle c, float angle)
      returns a point on the circle going the given angle clockwise from the top

      circle c0 = variable
        c0.radius = variable
      float a1
        a1 = variable
      float a2
        a2 = variable

      point pf

      point p1
        p1 = pointoncircle(c0,a1)
      point p2
        p2 = pointoncircle(c0,a2)
      circle c1 = p1
        c1.radius = distance(p1,p2)
      circle c2 = p2
        c2.radius = distance(p1,p2)
      circle c3 = intersect(c0,c1,p2)
        c3.radius = distance(p1,p3)
      circle c4 = intersect(c2,c3,p1)
        c4.radius = distance(intersect(c2,c3,p1),p1)
      circle c5 = intersect(c4,c3,p1)
        c5.radius = distance(intersect(c4,c3,p1),p1)
      circle c6 = intersect(c2,c4,p1)
        c6.radius = distance(intersect(c2,c4,,p1),p1)
      pf = intersect(c5,c6,p1)
    Last edited: Feb 21, 2007
  9. HallsofIvy

    HallsofIvy 41,262
    Staff Emeritus
    Science Advisor

Know someone interested in this topic? Share this thead via email, Google+, Twitter, or Facebook

Have something to add?