circles: add midpoint examples

This commit is contained in:
Vince Weaver 2021-06-14 12:52:21 -04:00
parent c562c3fd5f
commit 5c2a174ebf
4 changed files with 59 additions and 2 deletions

View File

@ -7,12 +7,17 @@ EMPTY_DISK = ../../../empty_disk
all: circles.dsk
circles.dsk: HELLO CIRCLES BRES.BAS BRESBOT.BAS BRESCOOL.BAS
circles.dsk: HELLO CIRCLES \
BRES.BAS BRESBOT.BAS BRESCOOL.BAS \
MID.BAS MIDBOT.BAS MIDCOOL.BAS
cp $(EMPTY_DISK)/empty.dsk circles.dsk
$(DOS33) -y circles.dsk SAVE A HELLO
$(DOS33) -y circles.dsk SAVE A BRES.BAS
$(DOS33) -y circles.dsk SAVE A BRESBOT.BAS
$(DOS33) -y circles.dsk SAVE A BRESCOOL.BAS
$(DOS33) -y circles.dsk SAVE A MID.BAS
$(DOS33) -y circles.dsk SAVE A MIDBOT.BAS
$(DOS33) -y circles.dsk SAVE A MIDCOOL.BAS
$(DOS33) -y circles.dsk BSAVE -a 0x0C00 CIRCLES
###
@ -27,6 +32,22 @@ BRES.BAS: bres.bas
###
MID.BAS: mid.bas
$(TOKENIZE) < mid.bas > MID.BAS
###
MIDBOT.BAS: midbot.bas
$(TOKENIZE) < midbot.bas > MIDBOT.BAS
###
MIDCOOL.BAS: midcool.bas
$(TOKENIZE) < midcool.bas > MIDCOOL.BAS
###
BRESBOT.BAS: bresbot.bas
$(TOKENIZE) < bresbot.bas > BRESBOT.BAS
@ -47,4 +68,6 @@ circles.o: circles.s
###
clean:
rm -f *~ *.o *.lst CIRCLES BRES.BAS BRESBOT.BAS BRESCOOL.BAS
rm -f *~ *.o *.lst CIRCLES \
BRES.BAS BRESBOT.BAS BRESCOOL.BAS \
MID.BAS MIDBOT.BAS MIDCOOL.BAS

View File

@ -0,0 +1,17 @@
10 HGR:HCOLOR=3
20 XC=50:YC=50:R=30:GOSUB 30
25 END
30 X=R:Y=0:P=1-R:GOTO 100
40 Y=Y+1
50 IF P<=0 THEN P=P+2*Y+1:GOTO 70
60 X=X-1:P=P+2*Y-2*X+1
70 IF (X<Y) THEN RETURN
100 HPLOT XC+X,YC+Y
110 HPLOT XC-X,YC+Y
120 HPLOT XC+X,YC-Y
130 HPLOT XC-X,YC-Y
140 HPLOT XC+Y,YC+X
150 HPLOT XC-Y,YC+X
160 HPLOT XC+Y,YC-X
170 HPLOT XC-Y,YC-X
180 GOTO 40

View File

@ -0,0 +1,9 @@
0HGR2
1HCOLOR=1+RND(1)*7:A=40+RND(1)*200:B=40+RND(1)*100:X=RND(1)*40
3Y=0:P=1-X:GOTO7
4Y=Y+1:IFP<=0THENP=P+2*Y+1:GOTO6
5X=X-1:P=P+2*Y-2*X+1
6IFX<YTHEN1
7HPLOTA+X,B+Y:HPLOTA-X,B+Y:HPLOTA+X,B-Y:HPLOTA-X,B-Y
8HPLOTA+Y,B+X:HPLOTA-Y,B+X:HPLOTA+Y,B-X:HPLOTA-Y,B-X
9GOTO4

View File

@ -0,0 +1,8 @@
0HGR2
1HCOLOR=1+RND(1)*7:A=40+RND(1)*200:B=40+RND(1)*100:X=RND(1)*40
3Y=0:P=1-X:GOTO7
4Y=Y+1:IFP<=0THENP=P+2*Y+1:GOTO6
5X=X-1:P=P+2*Y-2*X+1
6IFX<YTHEN1
7HPLOTA+X,B+YTOA-X,B+YTOA+X,B-YTOA-X,B-YTOA+Y,B+XTOA-Y,B+XTOA+Y,B-XTOA-Y,B-X
9GOTO4