www.webdeveloper.com
Results 1 to 3 of 3

Thread: Finding points on a circumference using radius, origin and angle

  1. #1
    Join Date
    Mar 2007
    Posts
    6

    Finding points on a circumference using radius, origin and angle

    This is really making me wish I paid attention in Math at school! I'm trying to write a function that will return the x and y coordinates of a point along the circumference of a circle.

    I found what I thought was the equation on another forum, but it doesn't seem to be right. Here is my current function, it assumes that the topmost point of the circle is 0/360:

    Code:
    function GetCircumferencePoints(Radius, OriginX, OriginY, Angle)
    {
    	var X = OriginX+Radius*Math.sin(Angle);
    	var Y = OriginY+Radius*-Math.cos(Angle);
    	return [X,Y];
    }
    I can tell it's not working because if my origin is 0,0 and my angle is 90 then my Y coordinate should be 0. Is there anyone here who paid attention in Math and could help me?

    Thanks in advance.

  2. #2
    Join Date
    Mar 2007
    Posts
    6
    Turns out Math.sin and Math.cos return in radians, so the solution was:

    Code:
    function GetCircumferencePoints(Radius, OriginX, OriginY, Angle)
    {
    	var X = OriginX+Radius*Math.sin(Angle*Math.PI/180);
    	var Y = OriginY+Radius*-Math.cos(Angle*Math.PI/180);
    	return [X,Y];
    }
    Well, it's here in case I'm not the only coder who's brain occasionally goes out to lunch.

  3. #3
    Join Date
    Dec 2005
    Location
    FL
    Posts
    7,373

    Question

    Just saw you post, but I'm a bit confused.
    it assumes that the topmost point of the circle is 0/360:
    I think the radian measure starts a the right-most position along a line
    x0,y0 ---> x0+r,y0
    which would be 0 degrees

    The top most part of the circle would be
    x0,y0 ---> x0,y0-r (-r assumes you are using screen pixels if plotting)
    which is normally considered +90 degrees

    I believe x0,y0 ---> x0,y0+r would be the 270 degree position on the circle.

    If you really want 0 degrees to be at the top of the circle,
    I think you are going to need to add a 'fudge' factor for your calculations.
    Should be easy to do by add +90 degrees before you start using the conversion function
    and of course subtracting 90 degrees if you need to reverse the process.

    Note: This assumes I'm understanding your problem correctly.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles