Hello,

I need to create a function which takes parameters for a circle and checks if a given point(x,y) lies within the circle (or on the edge).

Like this:

public static bool PointExistsInCircle(Double CircleX,Double CircleY,Double CircleRadius,Double PointX,Double PointY) 
{
needs to return 'true' if the point is in the circle, if not return 'false'.
}

Could someone help me with this?, unfortunately i'm not good at math..

Mervin.

I'm not good at math either...LOL. Check out this thread, and see if you can come up with the formula you need. Then, if you need help with coding it, come on back here--OK?

Calculate Radius from X Y coord

Well, the equation of a circle with radius R on the origin is [TEX]x^2+y^2=R^2[/TEX]
All you have to do is test if this inequality is true or false : [TEX]x^2+y^2 <= R^2[/TEX]
If it is true the point (x,y) is in the circle, if it is equal it is on the circle, else it lies outside the circle.
It should be rather easy to write that in C#.

commented: nice +15

Ah okay thanks for the help :).

and what would be a formula which also takes an X and Y for the circle origin?

Don't know exactly what you mean here but I guess it is something like this [TEX](x-a)^2+(y-b)^2 = R^2[/TEX]
Where a and b are the new coordinates of the center. If a and b are both zero then the circle has its center at the origin.

I don't understand the Circle X,Y, and Radius. Don't you just need a single center point and the radius, then draw the circle from there?

Take a look at online book at google - Physics for game programmers By Grant Palmer

SUMMARY:

Determine if the point is inside the circle by computing the distance from the point to the center of the circle. If the distance is less than 1, the point is inside.

double distance = Math.Sqrt((x-0.5)*(x-0.5) + (y-0.5)*(y-0.5));
if(distance<=0.5){
   ...
}

Thanks for the help everyone. I solved it :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.