Page 1 of 2

Any easy way to fill certain (closed) area of HIRES screen?

Posted: Sat Jul 06, 2013 3:21 am
by Brana
Any easy way to fill certain (closed) area of the HIRES screen?



I'm wondering is there any simple (in BASIC?) solution, for this is the problem that's been bugging me for a couple of years now (!)

If I do something simple as drawing a circle, square, or an ellipse in HIRES in Oric Atmos, then sometimes I need to fill all (inside) pixels of that (closed) shape with INK color (just to be white), but I do not know any simple (and accurate) way to do that?

Is there any solution in Oric BASIC for this situation?

Re: Any easy way to fill certain (closed) area of HIRES scre

Posted: Sat Jul 06, 2013 7:53 am
by Dbug
Yes there is a way, I remember there was some Type In programs in some magazines with a BASIC implementation of that.
What you need to search for is 'floodfill'.

There are some examples with animations and pseudocode on wikipedia.:
http://en.wikipedia.org/wiki/Flood_fill

Know that there are many different methods to do it, but they basically are all recursive (so you may get an error with a Stack Overflow) or require arrays to store the non yet treated branches. Some are more efficient than others, and most can just be implemented with POINT(x,y) and CURSET(x,y,t).

In BASIC it may be quite slow, but I would try first the scanline method, it's probably the less memory/stack intensive.
Image

Re: Any easy way to fill certain (closed) area of HIRES scre

Posted: Sat Jul 06, 2013 10:59 am
by peacer
In Peter's web site (TheSpider) he put his own painting program "spaint" . The program is written in %100 basic. The program is really helpful. It has many subroutines to draw circle, box, change attribute etc and shape filling routine. The filling code is really short, simple and fast.
4750 PRINTR$;"Fill Shape : Are you sure? (Y/N)"
4760 REPEAT:CK$=KEY$:UNTIL CK$="Y" OR CK$="N"
4770 IF CK$="N" THEN RETURN
4780 ' Fill shape
4790 FX=X:FY=Y
4800 IF POINT(X,Y)=0 THEN FP=0 ELSE FP=-1
4810 IF FP=0 THEN PRINT"Filling in foreground colour"
4820 IF FP=-1 THEN PRINT"Filling in background colour"
4830 REPEAT:PY=-1 ' move to top
4840 IF FY=LY THEN GOTO 4860
4850 IF POINT(FX,FY-1)=FP THEN FY=FY-1:PY=0
4860 UNTIL PY=-1
4870 CURSET FX,FY,2
4880 REPEAT:PY=-1 ' going down
4890 REPEAT:PX=-1 ' go left
4900 IF FX=LX THEN GOTO 4920
4910 IF POINT(FX-1,FY)=FP THEN CURSET FX-1,FY,2:FX=FX-1:PX=0
4920 UNTIL PX=-1
4930 FX=X
4940 REPEAT:PX=-1 ' go right
4950 IF FX=MX THEN GOTO 4970
4960 IF POINT(FX+1,FY)=FP THEN CURSET FX+1,FY,2:FX=FX+1:PX=0
4970 UNTIL PX=-1
4980 FX=X
4990 IF FY=MY THEN GOTO 5010
5000 IF POINT(FX,FY+1)=FP THEN CURSET FX,FY+1,2:FY=FY+1:PY=0
5010 UNTIL PY=-1
5020 RETURN
http://oricspider.home.insightbb.com/spiderbasic.html

Re: Any easy way to fill certain (closed) area of HIRES screen?

Posted: Sat Apr 08, 2017 4:37 am
by Symoon
Hi,
Peter's website seems down :( Anybody knows if it has moved to another place?
Thanks!

Re: Any easy way to fill certain (closed) area of HIRES screen?

Posted: Thu Apr 13, 2017 7:07 pm
by coco.oric
i'll look in my archives.
may be i've archived a copy

Re: Any easy way to fill certain (closed) area of HIRES screen?

Posted: Thu Apr 13, 2017 7:40 pm
by Dbug
I poke Peter on Facebook :)
Have found my site code in HD storage. Shall need to work on it a bit, updating links etc, before I am able to share again.

Re: Any easy way to fill certain (closed) area of HIRES screen?

Posted: Fri Apr 14, 2017 5:25 am
by Symoon
Thanks!
Do you know of any particular reason why the site went offline?

Re: Any easy way to fill certain (closed) area of HIRES screen?

Posted: Fri Apr 14, 2017 7:13 am
by Dbug
Thanks Mickael, I don't believe my site is hosted anywhere now. My cable company has been taken over twice since those days.

Re: Any easy way to fill certain (closed) area of HIRES screen?

Posted: Fri Apr 14, 2017 6:31 pm
by Symoon
Thanks! I see, same thing that happened with my little site when Geocities went down and I didn't have the nerve to set it up again - except my site didn't have any interesting information ;)

Re: Any easy way to fill certain (closed) area of HIRES screen?

Posted: Thu Apr 27, 2017 1:50 am
by TheSpider
Dbug wrote:
Thu Apr 13, 2017 7:40 pm
I poke Peter on Facebook :)
Yes you did!!!
Sent you a link on FB message to my updated & zipped site on Dropbox.
Could oric.org assist in hosting these pages?

Re: Any easy way to fill certain (closed) area of HIRES scre

Posted: Thu Apr 27, 2017 1:54 am
by TheSpider
peacer wrote:
Sat Jul 06, 2013 10:59 am
In Peter's web site (TheSpider) he put his own painting program "spaint" . The program is written in %100 basic. The program is really helpful. It has many subroutines to draw circle, box, change attribute etc and shape filling routine. The filling code is really short, simple and fast.


Greetings again peacer!!
I had to reset my password to get back into this forum, and received a message that my last login was in 2009.... oops!
Yeah, spaint was a labour of love for such a long time. I still run the program from time to time.
The filling routine is not the best, but did the job for what I needed. It missed areas, which you had to go to and start again there.
Hope you are doing well mate.

Re: Any easy way to fill certain (closed) area of HIRES scre

Posted: Thu Apr 27, 2017 11:26 pm
by peacer
TheSpider wrote:
Thu Apr 27, 2017 1:54 am
Greetings again peacer!!
I had to reset my password to get back into this forum, and received a message that my last login was in 2009.... oops!
Yeah, spaint was a labour of love for such a long time. I still run the program from time to time.
The filling routine is not the best, but did the job for what I needed. It missed areas, which you had to go to and start again there.
Hope you are doing well mate.
Hi peter :) Nice to hear from you too. I am trying to get by the life :)

I think your basic code is great. You are speaking modestly :)

Best wishes

Re: Any easy way to fill certain (closed) area of HIRES screen?

Posted: Fri Apr 28, 2017 12:06 pm
by Dbug

Re: Any easy way to fill certain (closed) area of HIRES screen?

Posted: Fri Apr 28, 2017 12:22 pm
by TheSpider
Thank you so much Dbug and Jede!!!!!

Re: Any easy way to fill certain (closed) area of HIRES scre

Posted: Fri Apr 28, 2017 12:26 pm
by TheSpider
peacer wrote:
Thu Apr 27, 2017 11:26 pm
Hi peter :) Nice to hear from you too. I am trying to get by the life :)
I think your basic code is great. You are speaking modestly :)
Best wishes
Glad to hear you are doing good peacer.
Still working at a Food Bank, these days being the Food Procurement Coordinator and Report Writer.

Was chatting with my wife about all these artists that go back to their projects many years later.
That may be me with Spaint, as it truly still is a work in progress, and one I enjoy.