Roby Jose

Greenhorn

Posts: 4

Paul Bailey

Ranch Hand

Posts: 91

posted 16 years ago

Roby,

not sure that you have two points there, but generay, a circle is the locus of all points a set distance form a center point, or something like that. on a 2D surface, it is all points such that x^2+y^2 = r^2 where r is the radius of your circle (assuming it is centered at (0,0). If it isn't there is another more general forumla you can use... but i won't waste your time with that.

You will have to come up with a method of finding the points that you want to color, but generaly, you are going to want their int values to be such that x^2+y^2 is about equal to r^2.

Hope this helps.

Originally posted by Roby Jose:

I have a circle drawn on a panel. now I want to mark points along the circumferance of the circle. I know the angle inscribed by 2 such points at the center which is (width/2,height/2)

how do i find the points

Roby,

not sure that you have two points there, but generay, a circle is the locus of all points a set distance form a center point, or something like that. on a 2D surface, it is all points such that x^2+y^2 = r^2 where r is the radius of your circle (assuming it is centered at (0,0). If it isn't there is another more general forumla you can use... but i won't waste your time with that.

You will have to come up with a method of finding the points that you want to color, but generaly, you are going to want their int values to be such that x^2+y^2 is about equal to r^2.

Hope this helps.

Manfred Leonhardt

Ranch Hand

Posts: 1492

posted 16 years ago

Hi Roby,

From my geometry class I seem to remember that you can use triangles to get points around the circle. If we use a right-angle triangle (90 deg) we can use the following fomula to get at any point:

x = r * cos( theta )

y = r * sin( theta )

where r is the circle radius and theta is the angle you want. The theta values start with 0 on the right side and goes counter clockwise (i.e., 90 up vertical, 180 left side, 270 down vertical, etc).

Enjoy,

Manfred.

From my geometry class I seem to remember that you can use triangles to get points around the circle. If we use a right-angle triangle (90 deg) we can use the following fomula to get at any point:

x = r * cos( theta )

y = r * sin( theta )

where r is the circle radius and theta is the angle you want. The theta values start with 0 on the right side and goes counter clockwise (i.e., 90 up vertical, 180 left side, 270 down vertical, etc).

Enjoy,

Manfred.

Roby Jose

Greenhorn

Posts: 4

posted 16 years ago

thanks for the replies.

my concern is the transformation from the window coordinates to the geometric cordinates so that i can apply the transformation formula for rotation about a point through an angle. the window coordinates are such that the top left corner has coordinates (0,0) and the bottom right corner has (xmax, ymax) which is not the case in the geometric cordinate system.

please advise

my concern is the transformation from the window coordinates to the geometric cordinates so that i can apply the transformation formula for rotation about a point through an angle. the window coordinates are such that the top left corner has coordinates (0,0) and the bottom right corner has (xmax, ymax) which is not the case in the geometric cordinate system.

please advise

Manfred Leonhardt

Ranch Hand

Posts: 1492

posted 16 years ago

Hi Roby,

Sorry for the confusion. You just need to flip all your y values for your coordinate system.

X Drawing: 0,0 upper Left, xMax,yMax lower right

Coor Sys?: 0,0 lower Left xMax,yMax upper right

We can see that x direction works as is. For y we need to flip all the values we get:

yCoor = DrawArea.height - yDraw

That should do the trick ...

Hope it helps,

Manfred.

Sorry for the confusion. You just need to flip all your y values for your coordinate system.

X Drawing: 0,0 upper Left, xMax,yMax lower right

Coor Sys?: 0,0 lower Left xMax,yMax upper right

We can see that x direction works as is. For y we need to flip all the values we get:

yCoor = DrawArea.height - yDraw

That should do the trick ...

Hope it helps,

Manfred.