From: Moritz Angermann <moritz.angermann@gm...>  20020826 04:09:49

if you talk about evas(21) i think you'r right, about evas(10.66) i don'T know but i think the Berenham algorithm would be better since it's faster ( when i tryed it ) here is the 'php' source wich should be easily understandable. function circle($center_x,$center_y,$r,$color){ global $img; $d = 3(2*$r); $y = $r; for($x=0;$x<=$y;$x++){ imagesetpixel($img['src'],$center_x+$x, $center_y+$y, $color); imagesetpixel($img['src'],$center_x+$x, $center_y$y, $color); imagesetpixel($img['src'],$center_x$x, $center_y+$y, $color); imagesetpixel($img['src'],$center_x$x, $center_y$y, $color); imagesetpixel($img['src'],$center_x+$y, $center_y+$x, $color); imagesetpixel($img['src'],$center_x+$y, $center_y$x, $color); imagesetpixel($img['src'],$center_x$y, $center_y+$x, $color); imagesetpixel($img['src'],$center_x$y, $center_y$x, $color); if($d < 0) $d = $d + ( 4 * $x ) + 6; else{ $d = $d + 4 * ($x  $y) + 10; $y = $y 1; } } } i got a same running here: http://mindbox.mine.nu/~ss/imagery.php and there source here: http://mindbox.mine.nu/~ss/imagery_src.php regards On Mon, 20020826 at 00:51, ronny abraham wrote: > > > Hi, I've only browsed through the Evas code, and that was a while ago, > so I don't know if you have this in the new code. In any case, I think > people will get a kick out of this. > > I found the code in "mathematical elements for computer graphics" by > rogers & adams. pg 21516 > > Anyway, I'm going to go through the math of it, so just bear with me. > I'll try to paraphrase as much as I can, but their style is very > concise, so there isn't much I can do to improve on it. > > > given a circle of radious r > > x = rcos(theta) > y = rsin(theta) > > 0 <= theta <= pi > > > assume a fixed number of points equally spaced apart are used to > represent the circle > > delta_theta = 2 * pi/num_points > > the intial points are: > > x_0 = rcos(0) > y_0 = rsin(0) > > from that you can do this: > > x_i+1 = rcos( theta_i + delta_theta ) > y_i+1 = rsin( theta_i + delta_theta ) > > where theta_i is the angle we used for the last points ( x_i and y_i )we > got. > > x_i+1 and y_i+1 are the current points we're trying to find. > > > sum of angles formula gives us: > > x_i+1 = r( cos(theta_i) cos(delta_theta) >  sin(theta_i) sin(delta_theta) ) > > y_i+1 = r( cos(theta_i) sin(delta_theta) >  cose(delta_theta) sin(theta_i) ) > > > if we take the original equations, with theta as theta_i > > x_i = rcos(theta_i) > y_i = rsin(theta_i) > > we then get: > > x_i+1 = x_i * cos( delta_theta )  y_i * sin(delta_theta) > y_i+1 = y_i * sin( delta_theta )  y_i * cos(delta_theta) > > the nifty thing about all this, is that you only need to compute: > > delta_theta > cos(delta_theta) > sin(delta_theta) > > ONCE. > > Which allows us to kick out the timeintensive trig stuff. > > I think that this makes having a circle function in evas very possible > since it's fast. > > Of course, if it already exists, then at least this email was > (hopefully) entertaining. :D > > > >  > This sf.net email is sponsored by: OSDN  Tired of that same old > cell phone? Get a new here for FREE! > https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390 > _______________________________________________ > enlightenmentdevel mailing list > enlightenmentdevel@... > https://lists.sourceforge.net/lists/listinfo/enlightenmentdevel >   Moritz Angermann / mind   This message is composed of 100% recycled electrons & photons only!  