aldweb

Close I. aldweb

Close II. PC Freeware

Close III. Palm Freeware

Close IV. Palm Shareware

Close V. iziBasic Palm

Close VI. Palm Knowledge

Close VII. Pocket Computer

Close VIII. miniPortail

Special !



Mobile version of
the aldweb Site

m.aldweb.com


Neither French, nor English?

Try one of these flags then:
[de] [es] [it] [pt]
Search




Weather / Spam / www

Lyon Weather


aldweb against spam


Newsletter
To receive news about this website, consider subscribing to our Newsletter.
Subscribe
Unsubscribe
298 Subscribers
Family's web sites

Webmaster - Infos
Friends News
Visits

   visitors

   visitors online

Poll
What do you think of the new design of the aldweb Site?
 
Great !
Beautiful
Average
So ugly...
Results
forum.gifForum - iziBasic - Topic #1400

Forum - Forum
iziBasic - iziBasic


Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 257

active  Topic # 1400  Released: Example demonstrating Bresenham's MidPoint Circle Algorithm

02/05/2006 @ 21:08
by bh77a

Anonymous



Tuesday, May 2, 2006

Good day,

Here is a link to a new project that I am releasing that demonstrates Bresenham's MidPoint Circle Algorithm:

http://geocities.com/bh77a/palm_stuff/ib_code_midpointcircle.html

Please note that this is better than the PP applet as the circles are truly hollow using this method. Full source is provided, including documentation on origins of algorithm.

Features are:
- custom x,y
- custom radius
- filled or hollow

Of course anyone is free to use this as they see fit. Should you have any questions, please don't hesitate to ask.

Regards,
bh77a
Write to bh77a   Post an answer  Top

[]   


Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 1
--------
06/05/2006 @ 12:24
by aldweb

Anonymous

visitor
It maybe is better but isn't it a bit slower?

Cheers

@+
aldweb
Write to aldweb   Post an answer  Top

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 2
--------
06/05/2006 @ 17:13
by bh77a

Anonymous

visitor
You are right... it is a bit slower. In an attempt to gain truly hollow circles with PP I should try the WinDrawRectangleFrame API procedure with a frame type set to 0x0401.

Regards,
bh77a
Write to bh77a   Post an answer  Top

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 3
--------
07/05/2006 @ 05:21
by bh77a

Anonymous

visitor
Hi,

Just reporting back that WinDrawRectangleFrame only seems to draw a rectangle with rounded corners, so it will be insufficient for hollow circles.

While the PP applet works fast for filled circles, the algorithm isn't too slow for hollow ones, which are needed if one wants to implement into a drawing app of sorts.

Any thoughts on speeding it up or making truly hollow circles with the PP applet are most welcome.

Regards,
bh77a
Write to bh77a   Post an answer  Top

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 4
--------
08/05/2006 @ 20:44
by Pierre

Anonymous

visitor
Hi, both Aldweb and bh77a !

I just had a look on your PPApplet (ibcircle): 6 calls to the 'substring' routine and 6 more to the 'StrAToI... to call a single API routine to draw a circle !?... These are 12 reasons to be slow.

In order to define a circle, you just need its center and its radius. As a Palm screen is max 320x480 you just need 9 bits to define those elements (9 bits give you a 512 points range) : so 3x9=27 and one bit for filled/hollow circle are 28 bits ... you just need an integer (32 bits) to send your data from your iziBasic program to your PPApplet (and then use 'shr' and 'and').

I never 'compiled' anything with IziBasic (excuse moi Aldweb , or with the GUI mode of PP. Anyway, if I could help you, it would be a pleasure.

Pierre, qui va aller dormir.
Write to Pierre   Post an answer  Top

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 5
--------
08/05/2006 @ 21:46
by bh77a

Anonymous

visitor
Hi Pierre,

Thank you for the feedback.

I am very interested in your method. Could you please provide some more details?

My method is probably very poor, but my goal was to make a circle that could be defined via user input in iziBasic, which would then be sent the parameters to PP and use native API to draw it.

Since PP receives strings from iB (iziBasic), I had to pass the parameters as a string and then let PP cut and convert the string...

Some of the code should probably be changed to the following...

x:=StrAToI(SubString "rect",1,3);

which would be a small bit more efficient (or at least easier to follow when viewing).

The "native" iziBasic method (listed on my site as well) of using the MidPoint Circle Algorithm is a little slower than the PP applet method, but it does allow for hollow circles, in which my method using PP applet certainly did not (looked hollow but weren't :( ). It is terribly slow (too slow for a drawing app) if one has a chance to look at it to and has ideas to speed it up that would be great... maybe I need to dump the routine into a PP applet for speed issues?

If you have any thoughts on speeding up the process of drawing ellipses, as posted a few threads down, that would be great. Unfortunately, I was unable to follow the MidPoint Ellipse Algorithm (just a programmer for a hobby, never took a real class of it) so I had to revert to a meshing of the draw routine and sin/cosine manipulations.

Thanks for taking the time to look at the project. I look forward to any information/assistance that you may provide.

Regards,
bh77a
Write to bh77a   Post an answer  Top

Warning: A non-numeric value encountered in /web5/aldweb/www/aldweb_com/www/thread.php on line 497
Answer n° 6
--------
09/05/2006 @ 13:21
by bh77a

Anonymous

visitor
Based on Pierre's suggestions, a leaner version of PP circle applet is posted:

http://www.geocities.com/bh77a/palm_stuff/ib_applet_circle.html

Quite a few lines of code removed, etc.

Thanks,
bh77a
Write to bh77a   Post an answer  Top
active topic active   closed topic closed   Sticky Sticky   New New message   -   Correct Correct message   Close Close topic   Make sticky Make sticky
[]
Forum Topic  Forum 



 
^ Top ^