home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
M.u.C.S. Disc 2000
/
MUCS2000.iso
/
sigisoft
/
painter
/
ms-dos
/
painter.lst
< prev
next >
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
Macintosh to JP
MacRoman (detected)
NeXTSTEP
RISC OS/Acorn
Shift JIS
UTF-8
Wrap
File List
|
1997-10-06
|
76.7 KB
|
3,152 lines
SCREEN 17
CLOSE #1
TRON #97
CLEAR
ccc%=1
graf%=1
ON ERROR GOSUB fehler
RESTORE aaa
DEFLINE 1,bh,0,0
DIM menue$(97)
kreis_1a%=0
kreis_2a%=360
ka%=1
fu%=1
grk=1
modus%=1
DEFMOUSE 3
REPEAT
READ menue$(d%)
INC d%
UNTIL d%=96
GET 0,0,640,403,z$
GET 0,0,640,403,l$
GET 0,0,640,403,g$
IF EXIST("FEHLER.SHB")=TRUE
CLOSE #1
a$="FEHLER.SHB"
bild$=""
DEFMOUSE 3
OPEN "I",#1,a$
bild$=INPUT$(CVI(INPUT$(2,#1)),#1)
CLOSE #1
PUT 0,0,bild$,modus%
CLOSE #1
GET 0,0,640,403,z$
ENDIF
MENU menue$()
ON MENU GOSUB auswerten
PRINT AT(68,1);MALLOC(-1)
REPEAT
ON MENU
UNTIL void
PROCEDURE auswerten
PRINT AT(68,1);MALLOC(-1)
ON ERROR GOSUB fehler
MENU KILL
LOCAL d%,dd%
CLIP 0,0,640,403
ld$=menue$(MENU(0))
COLOR ccc%
GRAPHMODE graf%
DEFMOUSE 5
PUT 0,0,z$
SHOWM
IF ld$=" Unfill "
GOSUB unfill
ENDIF
IF ld$=" Kreis Ausschnitt "
GOSUB kreis_aus
ENDIF
IF ld$=" Spiegel - Modus "
DEFMOUSE 3
ALERT 3,"Spiegel Modus ",5,"_Horizontal|_Vertikal|_Alle|_Quer|_Zurück",b|
IF b|=5
b|=0
ENDIF
PUT 0,0,z$
ENDIF
IF ld$=" Lade Schrift "
DEFMOUSE 3
FREEFONT
CHDIR "SCHRIFT"
FILESELECT "*.FNT",fo$,fo$
LOADFONT fo$
CHDIR ".."
ENDIF
IF ld$=" Kreis 2 "
a|=3
GOSUB zeichne_2
ENDIF
IF ld$=" Ellipse 2 "
a|=1
GOSUB zeichne_2
ENDIF
IF ld$=" Rechteck 2 "
a|=2
GOSUB zeichne_2
ENDIF
IF ld$=" Betriebssystem "
HIDEM
CLS
SHELL "ECHO Mit Exit zurück zum Zeichenprogramm"
SHELL ""
SHOWM
PUT 0,0,z$
ENDIF
IF ld$=" Stiftgröße "
GRAPHMODE 1
COLOR 1
GET 0,0,640,403,l$
HIDEM
PRINT AT(1,1);"X - Koordinate ";
FORM INPUT 3,Xkord$
Xkord%=VAL(Xkord$)
PRINT AT(1,2);"Y - Koordinate ";
FORM INPUT 3,Ykord$
Ykord%=VAL(Ykord$)
PUT 0,0,z$
ENDIF
IF ld$=" SZL - Linie "
GOSUB Lang_linie
ENDIF
IF ld$=" Pyramide "
GOSUB pyramide2
ENDIF
IF ld$=" Draw 2 "
GOSUB draw2m
ENDIF
IF ld$=" Punkt Laden "
DEFMOUSE 3
a$=""
FILESELECT #"Bildpunkte laden","*.LST",a$,a$
IF EXIST(a$)=-1
CLS
OPEN "I",#1,a$
x=0
y=0
REPEAT
INPUT #1,x,y
DRAW x,y
UNTIL EOF(#1)
ENDIF
CLOSE #1
ENDIF
IF ld$=" Punkt Speichern "
DEFMOUSE 3
ALERT 3,"PC -Konverter|Bild konvertieren ",1,"_Konvert|_Zurück",d%
IF d%=1
OPEN "O",#1,"DATA.LST"
FOR x=0 TO 640
FOR y=0 TO 403
IF POINT(x,y)=1
PRINT #1;x;",";y;",";
COLOR 0
DRAW x,y
ELSE
COLOR 1
DRAW x,y
ENDIF
NEXT y
NEXT x
ENDIF
CLOSE #1
ENDIF
IF ld$=" Rastern "
GOSUB rastm2
ENDIF
IF ld$=" Raster Modus "
GET 0,0,640,403,l$
GRAPHMODE 1
COLOR 1
PRINT AT(1,1);"Raster Modus"
PRINT AT(1,2);"für Raster Funktion "
PRINT AT(1,4);"X Koordinate (0 - 640)"
PRINT AT(1,5);"Alter Wert ";Xrast%
PRINT AT(1,6);"Neuer Wert ";
FORM INPUT 3,Xrast$
Xrast%=VAL(Xrast$)
PRINT AT(1,8);"Y Koordinate (0 - ";403;")"
PRINT AT(1,9);"Alter Wert ";Yrast%
PRINT AT(1,10);"Neuer Wert ";
FORM INPUT 3,Yrast$
Yrast%=VAL(Yrast$)
PUT 0,0,z$
ENDIF
IF ld$=" Sprühbereich "
GET 0,0,640,403,l$
GRAPHMODE 1
PRINT AT(1,1);" Ausschnitt - Bestimmung "
PRINT AT(1,2);" für Sprühdose "
PRINT AT(1,3);"X - Positon (0 - 640) ";
FORM INPUT 3,S_bereich_x$
S_bereich_x%=VAL(S_bereich_x$)
PRINT AT(1,4);"Y - Position (0 - ";403;")";
FORM INPUT 3,S_bereich_y$
S_bereich_y%=VAL(S_bereich_y$)
PUT 0,0,z$
ENDIF
IF ld$=" Z - Modus "
GET 0,0,640,403,l$
GRAPHMODE 1
COLOR 1
PRINT AT(1,1);"Einstellung Z -Modus"
PRINT AT(1,2);"für Z - Box und Z Kreis "
PRINT AT(1,4);"Größe (1-99) ";
FORM INPUT 2,Z_linie_g$
z_linie_g%=VAL(Z_linie_g$)
PUT 0,0,z$
ENDIF
IF ld$=" V - Modus "
DEFMOUSE 3
ALERT 3,"Verschiebe Modus ",3,"_ 1 | _2 |_ 3 | _4 ",ver_mod%
ENDIF
IF ld$=" Block Modus "
DEFMOUSE 3
ALERT 3,"Block Modus ? ",1," _1 |_ 2 |_ 3 | _4 ",modus%
ENDIF
IF ld$=" Sprühdose 1 "
IF S_bereich_x%=FALSE OR S_bereich_y%=FALSE
S_bereich_x%=15
S_bereich_y%=15
ENDIF
REPEAT
SHOWM
WHILE MOUSEK=1
HIDEM
W%=RANDOM(S_bereich_x%)
e%=RANDOM(S_bereich_y%)
DRAW MOUSEX+W%,MOUSEY+e%
WEND
UNTIL MOUSEK=2
ENDIF
IF ld$=" Verschieben 1 "
GOSUB vermod1
ENDIF
IF ld$=" Verschieben 2 "
GOSUB vermod2
ENDIF
IF ld$=" Zeichenlupe "
REPEAT
@Glass(62,32,8)
UNTIL MOUSEK=2
GOSUB Grund
ENDIF
IF ld$=" Z - Kreis "
GOSUB zkreis90
ENDIF
IF ld$=" Z - Box "
GOSUB zbox90
ENDIF
IF ld$=" Drucke Bild "
DEFMOUSE 3
ALERT 3,"Bild ausdrucken|Programm GRAPHICS.EXE|sollte zuvor|gestartet werden.",1,"_Druck|_Zurück",d%
IF d%=2
GOTO yya
ENDIF
xxa:
dda%=0
~INTR($17,_AH=2,_DX=0)
IF BTST(_AH,3)
ALERT 3,"Drucker Übertragungsfehler|Bitte Drucker überprüfen",1,"_Weiter|_Abbruch",dda%
IF dda%=1
GOTO xxa
ENDIF
IF dda%=2
GOTO yya
ENDIF
ELSE
HIDEM
HARDCOPY
SHOWM
ENDIF
ENDIF
yya:
IF ld$=" Lade Bild "
GOSUB lade_bild_1
ENDIF
IF ld$=" Text "
GOSUB text90
ENDIF
IF ld$=" Update Bild "
bild$=""
a$="UPDATE.SHB"
GET 0,0,640,403,bild$
CLOSE #1
HIDEM
OPEN "O",#1,a$
PRINT #1,MKI$(LEN(bild$));bild$
CLOSE #1
SHOWM
ENDIF
IF ld$=" Undo "
SWAP l$,g$
PUT 0,0,l$
ENDIF
IF ld$=" Copyright "
DEFMOUSE 3
ALERT 0,"Sigi Painter V 6.0 (c) 1998 by Siegfried Hübner|Obere Vorstadt 21|91575 Windsbach ",0,"Free Soft (frei kopierbar)",d%
ENDIF
IF ld$=" Save Block "
GET 0,0,640,403,z$
bild$=""
DEFMOUSE 3
ALERT FALSE,"Bitte markieren Sie mit|der Maus den Bereich den|Sie speichern möchten.",1," _OK ",d%
PUT FALSE,FALSE,Boxbild$,modus%
GOSUB hilfs_maus
WHILE MOUSEK=FALSE
MOUSE x%,y%,k%
BOX a%,b%,x%,y%
PAUSE 3
BOX a%,b%,x%,y%
WEND
WHILE MOUSEK=1 AND MOUSEY<404
GET a%,b%,x%,y%,bild$
DEFMOUSE 3
FILESELECT #"Bildausschnitt abspeichern","*.SHA",a$,a$
IF a$=""
a$="FEHLER.SHA"
ENDIF
OPEN "O",#1,a$
ON ERROR GOSUB fehler
PRINT #1,MKI$(LEN(bild$));bild$
CLOSE #1
WEND
PUT 0,0,z$
ENDIF
IF ld$=" Lade Block "
a$=""
DEFMOUSE 3
FILESELECT #"Bildausschnitt einladen","*.SHA",a$,a$
IF EXIST(a$)
OPEN "I",#1,a$
block$=INPUT$(CVI(INPUT$(2,#1)),#1)
CLOSE #1
HIDEM
PUT 0,0,z$
DO
REPEAT
MOUSE x,y,mousek
PUT x,y,block$,3
REPEAT
UNTIL x<>MOUSEX OR y<>MOUSEY OR MOUSEK<>FALSE
PUT x,y,block$,3
UNTIL MOUSEK<>FALSE
EXIT IF MOUSEK=1
PUT x,y,block$,1
GET 0,0,640,403,z$
LOOP
PUT x,y,block$,modus%
ENDIF
SHOWM
ENDIF
IF ld$=" Invers "
GRAPHMODE 3
FOR y%=0 TO 480-1
LINE 0,y%,639,y%
NEXT y%
ENDIF
IF ld$=" Grafikmodus "
GET 0,0,640,403,l$
DEFMOUSE 3
ALERT 3, "Grafikmodus ?",5," _1 |_2 | _3 | _4 |_Abbruch",graf%
IF graf%=5
graf%=1
ENDIF
PUT 0,0,z$
ENDIF
IF ld$=" Kantenform "
DEFMOUSE 3
ALERT 3,"Kantenform|Quadrat,Rechteck",1,"_Eckig|_Rund",ka%
ENDIF
IF ld$=" G-Spiegel "
k%=403-1
DEFMOUSE 5
REPEAT
x%=MOUSEX
y%=MOUSEY
IF MOUSEK=1
HIDEM
DRAW x%,y% TO 639-b%,k%-a%
ELSE
SHOWM
ENDIF
b%=x%
a%=y%
UNTIL MOUSEK=2
ENDIF
IF ld$=" Baumstamm "
GOSUB hilfs_strich
GRAPHMODE 1
COLOR 1
DEFMOUSE 3
ALERT 3,"Baumstamm ?",2,"_(=====|(_=====)|=====_)",d%
bh=0
HIDEM
REPEAT
WHILE MOUSEK=1
PAUSE 5
INC bh
SELECT d%
CASE 1
DEFLINE 1,bh,2,0
CASE 3
DEFLINE 1,bh,0,2
CASE 2
DEFLINE 1,bh,2,2
ENDSELECT
GOSUB bh
WEND
UNTIL MOUSEK=2
IF f%<100
DEFFILL f%
ELSE
DEFFILL muster$
ENDIF
PUT 0,0,z$
ENDIF
IF ld$=" Größe M-Kreis "
PUT 0,0,l$
GRAPHMODE 1
COLOR 1
DEFLINE 1,0,0,0
HIDEM
IF ccc%=0
COLOR 1
ENDIF
REPEAT
IF MOUSEK=1
REPEAT
UNTIL MOUSEK<>1
INC grk
CIRCLE 320,175,grk,kreis_1a%,kreis_2a%
IF grk=100
grk=1
PUT 0,0,l$
ENDIF
ENDIF
UNTIL MOUSEK=2
PUT 0,0,z$
ENDIF
IF ld$=" M-Kreis "
GRAPHMODE 1
COLOR 1
REPEAT
MOUSE x%,y%,k%
SHOWM
IF MOUSEK=1
HIDEM
IF fu%=1
CIRCLE x%,y%,grk,kreis_1a%,kreis_2a%
ELSE
PCIRCLE x%,y%,grk,kreis_1a%,kreis_2a%
ENDIF
ENDIF
UNTIL MOUSEK=2
ENDIF
IF ld$=" Strichart "
GET 0,0,640,403,l$
GRAPHMODE 1
COLOR 1
INPUT "Strichart (0-6) ";kj
GOSUB hilfs_strich
PUT 0,0,z$
ENDIF
IF ld$=" Strichdicke "
GOSUB hilfs_strich
GRAPHMODE 1
COLOR 1
bh=0
HIDEM
REPEAT
WHILE MOUSEK=1
PAUSE 5
INC bh
DEFLINE 0,bh,0,0
GOSUB bh
WEND
UNTIL MOUSEK=2
PUT 0,0,z$
ENDIF
IF ld$=" G-Rays "
GOSUB rays90
ENDIF
IF ld$=" Zeichenfarbe "
DEFMOUSE 3
ALERT 3,"Zeichenfarbe ? ",2,"_Hintergrund|_Weiß",ccc%
INC ccc%
ENDIF
IF ld$=" Hintergrund "
HIDEM
REPEAT
IF MOUSEK=1
REPEAT
UNTIL MOUSEK<>1
ADD si%,50
ADD fa%,1
IF si%=1500
si%=0
ENDIF
SETCOLOR 0,fa%,si%*5,1
ENDIF
UNTIL MOUSEK=2
PUT 0,0,z$
ENDIF
IF ld$=" Füllfarbe "
GOSUB fill90
ENDIF
IF ld$=" Fülle aus "
DEFMOUSE 3
ALERT 3,"Fülle|Quadrat,Rechteck|Kreis,Ellipse",1,"_leer|_voll",fu%
ENDIF
IF ld$=" Save Bild "
bild$=""
a$=""
GET 0,0,640,403,bild$
CLOSE #1
DEFMOUSE 3
FILESELECT #"Bild abspeichern","*.SHB",a$,a$
OPEN "O",#1,a$
PRINT #1,MKI$(LEN(bild$));bild$
CLOSE #1
ENDIF
IF ld$=" Lösche Bild "
GET 0,0,640,403,z$
DEFMOUSE 3
ALERT 3,"Wollen Sie das Bild|wirklich löschen",2,"_Ja|_Nein",d%
IF d%=1
CLS
ENDIF
ENDIF
IF ld$=" X-Ellips "
GOSUB xelips90
ENDIF
IF ld$=" Ellipse "
GOSUB ellipse
ENDIF
IF ld$=" Prisma "
GOSUB quader
ENDIF
IF ld$=" Draw "
REPEAT
MOUSE x%,y%,k%
IF MOUSEK=1
HIDEM
DRAW x%,y% TO b%+Xkord%,a%+Ykord%
SELECT b|
CASE 0
DRAW x%,y% TO b%+Xkord%,a%+Ykord%
CASE 1
DRAW x%,y% TO b%+Xkord%,a%+Ykord%
DRAW 639-x%,y% TO 639-b%+Xkord%,a%+Ykord%
CASE 3
DRAW x%,y% TO b%+Xkord%,a%+Ykord%
DRAW 639-x%,y% TO 639-b%+Xkord%,a%+Ykord%
DRAW x%,403-1-y% TO b%+Xkord%,403-1-a%+Ykord%
DRAW 639-x%,403-1-y% TO 639-b%+Xkord%,403-1-a%+Ykord%
CASE 4
DRAW x%,y% TO b%+Xkord%,a%+Ykord%
DRAW 639-x%,403-1-y% TO 639-b%+Xkord%,403-1-a%+Ykord%
CASE 2
DRAW x%,y% TO b%+Xkord%,a%+Ykord%
DRAW x%,403-1-y% TO b%+Xkord%,403-1-a%+Ykord%
ENDSELECT
ELSE
SHOWM
ENDIF
b%=x%
a%=y%
UNTIL MOUSEK=2
ENDIF
IF ld$=" Rechteck "
GOSUB rechteck
ENDIF
IF ld$=" Quadrat "
GOSUB quadrat
ENDIF
IF ld$=" Line "
GOSUB line
ENDIF
IF ld$=" X-Kreis "
GOSUB xkreis90
ENDIF
IF ld$=" Kreis "
GOSUB kreis
ENDIF
IF ld$=" Punkt "
REPEAT
MOUSE x%,y%,k%
WHILE MOUSEK=1
HIDEM
DRAW x%,y% TO x%+Xkord%,y%+Ykord%
SELECT b|
CASE 0
DRAW x%,y% TO x%+Xkord%,y%+Ykord%
CASE 1
DRAW x%,y% TO x%+Xkord%,y%+Ykord%
DRAW 639-x%,y% TO 639-x%+Xkord%,y%+Ykord%
CASE 3
DRAW x%,y% TO x%+Xkord%,y%+Ykord%
DRAW 639-x%,y% TO 639-x%+Xkord%,y%+Ykord%
DRAW x%,403-1-y% TO x%+Xkord%,403-1-y%+Ykord%
DRAW 639-x%,403-1-y% TO 639-x%+Xkord%,403-1-y%+Ykord%
CASE 4
DRAW x%,y% TO x%+Xkord%,y%+Ykord%
DRAW 639-x%,403-1-y% TO 639-x%+Xkord%,403-1-y%+Ykord%
CASE 2
DRAW x%,y% TO x%+Xkord%,y%+Ykord%
DRAW x%,403-1-y% TO x%+Xkord%,403-1-y%+Ykord%
ENDSELECT
WEND
SHOWM
UNTIL MOUSEK=2
ENDIF
IF ld$=" Ende "
DEFMOUSE 3
ALERT 3,"Wollen sie das Programm |verlassen",2,"_Ja|_Nein",d%
IF d%=1
TROFF
SHOWM
SCREEN 3
END
ENDIF
ENDIF
DEFMOUSE 3
SHOWM
g$=z$
GET 0,0,640,403,z$
MENU menue$()
ON MENU GOSUB auswerten
PRINT AT(68,1);MALLOC(-1)
RETURN
PROCEDURE hh_strich
BOX 100,60,300,100
DRAW 100,80 TO 300,80
RETURN
PROCEDURE hilfs_strich
PUT 0,0,l$
GRAPHMODE 1
IF ccc%=0
COLOR 1
ENDIF
DEFLINE kj,bh,0,0
GOSUB hh_strich
RETURN
PROCEDURE bh
DRAW 100,80 TO 300,80
IF bh=40
bh=0
DEFLINE 1,bh,0,0
BOX 100,60,300,100
ENDIF
RETURN
PROCEDURE hilfs_maus
SHOWM
GRAPHMODE 3
REPEAT
UNTIL MOUSEK
MOUSE x%,y%,k%
a%=x%
b%=y%
REPEAT
UNTIL MOUSEK<>1
HIDEM
RETURN
PROCEDURE lade_bild_1
langh=0
GET 0,0,640,403,z$
iij$=""
CLOSE #1
a$=""
bild$=""
DEFMOUSE 3
FILESELECT #"Lade Bild (SHB,Atari Format)","*.*",a$,a$
iij$=RIGHT$(a$,3)
IF iij$="SHB"
IF EXIST(a$)
CLS
OPEN "I",#1,a$
bild$=INPUT$(CVI(INPUT$(2,#1)),#1)
CLOSE #1
PUT 0,0,bild$,modus%
GET 0,0,640,403,z$
ELSE
PUT 0,0,z$
ENDIF
ENDIF
IF NOT iij$="SHB"
IF EXIST(a$)
CLS
OPEN "I",#1,a$
IF LOF(#1)>31999
langh=LOF(#1)-32000
SEEK #1,langh
BGET #1,$A000:0,32000
GRAPHMODE 3
FOR y%=0 TO 480-1
LINE 0,y%,639,y%
NEXT y%
ENDIF
ELSE
ALERT 3,"Unbekanntes Bildformat|Kann Bildformat nicht laden ",1,"_Schade",d%
PUT 0,0,z$
ENDIF
ENDIF
CLOSE #1
RETURN
DATA Info, Copyright ,""
DATA Disk, Lade Bild , Save Bild ,~, Lade Block , Save Block ,~, Update Bild ,~, Betriebssystem ,~, Ende ,""
DATA Arbeit," Draw "," Draw 2 "
DATA Punkt ,~, Line , SZL - Linie ,~, G-Rays , G-Spiegel ,~, Quadrat , Rechteck ,~, Kreis , Ellipse ,~, Kreis 2 , Ellipse 2 , Rechteck 2 ,""
DATA Arbeit2, Prisma , Pyramide ,~, Z - Box , Z - Kreis ,~, M-Kreis ,~, X-Kreis , X-Ellips ,~," Zeichenlupe "
DATA "~", Verschieben 1 , Verschieben 2 ,~, Sprühdose 1 ,""
DATA Extra, Invers , Rastern , Unfill ,~, Text ,~, Undo ,""
DATA Einstellen, Füllfarbe , Hintergrund , Zeichenfarbe ," Baumstamm "
DATA Strichart , Strichdicke ," Kantenform "
DATA Fülle aus , Grafikmodus , Größe M-Kreis , Kreis Ausschnitt , Drucke Bild ,~, Lösche Bild ,""
DATA Einstellen2 , Block Modus , V - Modus , Z - Modus , Sprühbereich , Raster Modus , Stiftgröße , Spiegel - Modus ,""
DATA Sonstiges , Punkt Speichern , Punkt Laden ,~, Lade Schrift ,""
PROCEDURE fehler
try
HIDEM
GRAPHMODE graf%
bild$=""
a$="FEHLER.SHB"
GET 0,0,640,403,bild$
CLOSE #1
DEFMOUSE 3
OPEN "O",#1,a$
PRINT #1,MKI$(LEN(bild$));bild$
CLOSE #1
GET 0,0,640,403,z$
catch
RETURN
PROCEDURE quader
REPEAT
IF MOUSEK=1
@quater
ENDIF
UNTIL MOUSEK=2
RETURN
PROCEDURE quater
GRAPHMODE 3
br%=0
hdif%=0
x1%=0
y1%=0
x2%=0
y2%=0
k%=0
x%=0
y%=0
x3%=0
y3%=0
x4%=0
y4%=0
br1_2%=0
br2_3%=0
ho1_3%=0
ho2_3%=0
ho1_2%=0
Var_1=0
var1=0
Var_2=0
var2=0
var_3=0
var3=0
br1_3%=0
REPEAT
MOUSE x1%,y1%,k%
UNTIL k%=0
x2%=x1%
y2%=y1%
REPEAT
LINE x1%,y1%,x2%,y2%
REPEAT
MOUSE x%,y%,k%
UNTIL x2%<>x% OR y2%<>y% OR k%
LINE x1%,y1%,x2%,y2%
x2%=x%
y2%=y%
UNTIL k%
IF k%=1
LINE x1%,y1%,x2%,y2%
ENDIF
REPEAT
UNTIL MOUSEK=0 OR k%=2
x3%=x2%
y3%=y2%
REPEAT
DRAW x2%,y2% TO x3%,y3% TO x1%,y1%
REPEAT
MOUSE x%,y%,k%
UNTIL x3%<>x% OR y3%<>y% OR k%
DRAW x2%,y2% TO x3%,y3% TO x1%,y1%
x3%=x%
y3%=y%
UNTIL k%
IF k%=1
DRAW x2%,y2% TO x3%,y3% TO x3%-br%,y3%-hdif% TO x1%,y1%
ENDIF
REPEAT
UNTIL MOUSEK=0 OR k%=2
x4%=x3%
y4%=y3%
br1_2%=x2%-x1%
br1_3%=x1%-x3%
br2_3%=x3%-x2%
ho1_3%=y1%-y3%
ho2_3%=y2%-y3%
ho1_2%=y2%-y1%
Var_1=ho1_2%/(br1_2%+1.0E-12)
var1=y1%-Var_1*x1%
Var_2=br2_3%/(ho2_3%+1.0E-12)
var2=x3%+Var_2*y3%
var_3=ho1_3%/(br1_3%+1.0E-12)
var3=y1%-var_3*x1%
REPEAT
@setprisma
REPEAT
MOUSE x%,y%,k%
UNTIL x4%<>x% OR y4%<>y% OR k%
@setprisma
x4%=x%
y4%=y%
UNTIL k%
IF k%=1
@setprisma
ENDIF
DEFLINE 1,bh,0,0
REPEAT
UNTIL MOUSEK=0 OR k%=2
RETURN
PROCEDURE setprisma
var1=(y4%+ho2_3%)-Var_1*(x4%-br2_3%)
var2=x4%+Var_2*y4%
var3=y4%-var_3*x4%
DEFLINE 1,bh,0,0
IF var1>var1
IF var2>var2
DRAW x3%,y3% TO x4%,y4% TO x4%+br1_3%,y4%+ho1_3% TO x1%,y1%
DEFLINE 1,bh,0,0
DRAW x2%,y2% TO x4%-br2_3%,y4%+ho2_3% TO x4%,y4%
ELSE
DRAW x2%,y2% TO x4%-br2_3%,y4%+ho2_3% TO x4%,y4% TO x3%,y3%
IF var3>var3
DRAW x1%,y1% TO x4%+br1_3%,y4%+ho1_3% TO x4%,y4%
DEFLINE 1,bh,0,0
ELSE
DEFLINE 1,bh,0,0
DRAW x1%,y1% TO x4%+br1_3%,y4%+ho1_3% TO x4%,y4%
ENDIF
ENDIF
LINE x4%+br1_3%,y4%+ho1_3%,x4%-br2_3%,y4%+ho2_3%
ELSE
DRAW x1%,y1% TO x4%+br1_3%,y4%+ho1_3% TO x4%-br2_3%,y4%+ho2_3% TO x2%,y2%
IF var3>var3
DRAW x3%,y3% TO x4%,y4% TO x4%+br1_3%,y4%+ho1_3%
DEFLINE 1,bh,0,0
LINE x4%-br2_3%,y4%+ho2_3%,x4%,y4%
ELSE
IF var2>var2
DEFLINE 1,bh,0,0
DRAW x3%,y3% TO x4%,y4% TO x4%-br2_3%,y4%+ho2_3%
ELSE
DRAW x3%,y3% TO x4%,y4% TO x4%-br2_3%,y4%+ho2_3%
DEFLINE 1,bh,0,0
ENDIF
LINE x4%,y4%,x4%+br1_3%,y4%+ho1_3%
ENDIF
ENDIF
RETURN
PROCEDURE Hals
DEFLINE 0,bh,0,0
COLOR 1
SHOWM
PUT 0,0,l$
GRAPHMODE 1
DEFMOUSE 3
RETURN
PROCEDURE Grund
GRAPHMODE graf%
DEFFILL 0
DEFLINE 1,bh,0,0
RETURN
PROCEDURE Glass(W%,h%,M%)
LOCAL Mx%,my%,Mk%
GRAPHMODE 3
REPEAT
HIDEM
MOUSE Mx%,my%,Mk%
BOX Mx%,my%,Mx%+W%-1,my%+h%-1
REPEAT
UNTIL MOUSEX<>Mx% OR MOUSEY<>my% OR MOUSEK
BOX Mx%,my%,Mx%+W%-1,my%+h%-1
UNTIL Mk%
SHOWM
IF Mk%=1
GET 0,0,640,403,z$
GRAPHMODE 1
GET Mx%,my%,Mx%+W%-1,my%+h%-1,Part$
@Magnify(W%,h%,M%)
PUT 0,0,z$
PUT Mx%,my%,Part$
ENDIF
GRAPHMODE graf%
RETURN
PROCEDURE Magnify(W%,h%,M%)
LOCAL Sx%,sy%,By%,Mw%,Px%,Mgx%,Mgx2%,Mgy%,Mgy2%,Mx%,my%,a$,I%,J%,Rx%,Ry%
DEFFILL 4
COLOR 1
CLS
GRAPHMODE 1
Sx%=6
sy%=6
PRINT AT(64,10);" Lupen-Bedienung"
PRINT AT(64,11);" ---------------"
PRINT AT(64,12);" - Maustaste - "
PRINT AT(64,13);"Links = zeichnen"
PRINT AT(64,14);"Rechts = löschen"
PRINT AT(64,15);"Taste = zum Bild"
PRINT AT(64,16);"-----------------"
PRINT AT(64,17);"Sind Sie im Bild "
PRINT AT(64,18);"Dann Abbruch der "
PRINT AT(64,19);" Lupe durch "
PRINT AT(64,20);" drücken der "
PRINT AT(64,21);"rechten Maustaste"
BOX Sx%-2,sy%-2,Sx%+W%+1,sy%+h%+1
PUT 6,6,Part$
By%=403-1-M%*h%
Mw%=M%*W%
DRAW 0,By% TO Mw%,By%
DRAW Mw%,By% TO Mw%,403-1
Py%=I%+sy%
Mgy%=By%+1
Mgy2%=Mgy%+M%-1
DEC W%
DEC h%
DEFFILL 8
FOR I%=0 TO h%
Px%=Sx%
Mgx%=0
Mgx2%=M%-1
FOR J%=0 TO W%
IF POINT(Px%,Py%)
PBOX Mgx%,Mgy%,Mgx2%,Mgy2%
ENDIF
ADD Mgx%,M%
ADD Mgx2%,M%
INC Px%
NEXT J%
ADD Mgy%,M%
ADD Mgy2%,M%
INC Py%
NEXT I%
DO
a$=INKEY$
EXIT IF a$>CHR$(0)
MOUSE Mx%,my%,mousek
IF MOUSEK
Rx%=Mx% DIV M%
Ry%=(my%-By%) DIV M%
IF Rx%<=W% AND Ry%<=h% AND Ry%>=0
IF MOUSEK=1
DEFFILL 8
COLOR 1
ELSE
DEFFILL 0
COLOR 0
ENDIF
PBOX M%*Rx%,By%+M%*Ry%+1,M%*Rx%+M%-1,By%+M%*Ry%+M%
DRAW Sx%+Rx%,sy%+Ry%
ENDIF
ENDIF
LOOP
GRAPHMODE graf%
GET Sx%,sy%,Sx%+W%,sy%+h%,Part$
RETURN
PROCEDURE Verschieben_2
PUT 0,0,z$
REPEAT
UNTIL MOUSEK=0
IF ver_mod%=0
ver_mod%=1
ENDIF
SELECT verschieben
CASE 1
REPEAT
IF MOUSEK=1 AND MOUSEY<404
GET 0,1,MOUSEX,MOUSEY,Ver$
PUT 0,0,Ver$,ver_mod%
ENDIF
UNTIL MOUSEK=2
CASE 2
REPEAT
IF MOUSEK=1 AND MOUSEY<404
GET 0,0,MOUSEX,MOUSEY,Ver$
PUT 0,1,Ver$,ver_mod%
ENDIF
UNTIL MOUSEK=2
CASE 3
REPEAT
IF MOUSEK=1 AND MOUSEY<404
GET 1,0,MOUSEX,MOUSEY,Ver$
PUT 0,0,Ver$,ver_mod%
ENDIF
UNTIL MOUSEK=2
CASE 4
REPEAT
IF MOUSEK=1 AND MOUSEY<404
GET 0,0,MOUSEX,MOUSEY,Ver$
PUT 1,0,Ver$,ver_mod%
ENDIF
UNTIL MOUSEK=2
CASE 5
REPEAT
IF MOUSEK=1 AND MOUSEY<404
GET 0,1,MOUSEX,MOUSEY,Ver$
PUT 1,0,Ver$,ver_mod%
ENDIF
UNTIL MOUSEK=2
CASE 6
REPEAT
IF MOUSEK=1 AND MOUSEY<404
GET 1,0,MOUSEX,MOUSEY,Ver$
PUT 0,1,Ver$,ver_mod%
ENDIF
UNTIL MOUSEK=2
CASE 7
REPEAT
IF MOUSEK=1 AND MOUSEY<404
GET 1,1,MOUSEX,MOUSEY,Ver$
PUT 0,0,Ver$,ver_mod%
ENDIF
UNTIL MOUSEK=2
CASE 8
REPEAT
IF MOUSEK=1 AND MOUSEY<404
GET 1,1,MOUSEX,MOUSEY,Ver$
PUT 1,0,Ver$,ver_mod%
ENDIF
UNTIL MOUSEK=2
CASE 9
REPEAT
IF MOUSEK=1 AND MOUSEY<404
GET MOUSEX,0,MOUSEX,MOUSEY,Ver$
PUT MOUSEX,1,Ver$,ver_mod%
ENDIF
UNTIL MOUSEK=2
CASE 10
REPEAT
IF MOUSEK=1 AND MOUSEY<404
GET 0,MOUSEY,MOUSEX,MOUSEY,Ver$
PUT 1,MOUSEY,Ver$,ver_mod%
ENDIF
UNTIL MOUSEK=2
ENDSELECT
RETURN
PROCEDURE Verschieben_4
PUT 0,0,z$
REPEAT
UNTIL MOUSEK=0
IF ver_mod%=0
ver_mod%=1
ENDIF
SELECT verschieben_2
CASE 1
REPEAT
MOUSE x%,y%,k%
IF MOUSEK=1 AND MOUSEY<404 AND y%<404
GET 0,y%,639,403-1,Ver$
PUT 0,y%+1,Ver$,ver_mod%
COLOR 0
DEFLINE 1,bh,0,0
DRAW 0,y% TO 639,y%
ENDIF
UNTIL MOUSEK=2
CASE 2
REPEAT
MOUSE x%,y%,k%
IF MOUSEK=1 AND MOUSEY<404 AND y%<404
GET 0,y%+1,639,403-1,Ver$
PUT 0,y%,Ver$,ver_mod%
COLOR 0
DEFLINE 1,bh,0,0
DRAW 0,403-1 TO 639,403-1
ENDIF
UNTIL MOUSEK=2
CASE 3
REPEAT
MOUSE x%,y%,k%
IF MOUSEK=1 AND MOUSEY<404
GET x%,0,639,403-1,Ver$
PUT x%+1,0,Ver$,ver_mod%
COLOR 0
DEFLINE 1,bh,0,0
DRAW x%,0 TO x%,403-1
ENDIF
UNTIL MOUSEK=2
CASE 4
REPEAT
MOUSE x%,y%,k%
IF MOUSEK=1 AND MOUSEY<404
GET 1,0,x%,403-1,Ver$
PUT 0,0,Ver$,ver_mod%
COLOR 0
DEFLINE 1,bh,0,0
DRAW x%,0 TO x%,403-1
ENDIF
UNTIL MOUSEK=2
CASE 5
REPEAT
MOUSE x%,y%,k%
IF MOUSEK=1 AND MOUSEY<404 AND y%<404
GET 0,0,639,y%-1,Ver$
PUT 0,1,Ver$,ver_mod%
COLOR 0
DEFLINE 1,bh,0,0
DRAW 0,0 TO 639,0
ENDIF
UNTIL MOUSEK=2
CASE 6
REPEAT
MOUSE x%,y%,k%
IF MOUSEK=1 AND MOUSEY<404
GET 0,y%+1,639,403-1,Ver$
PUT 0,y%,Ver$,ver_mod%
COLOR 0
DEFLINE 1,bh,0,0
DRAW 0,y% TO 639,y%
ENDIF
UNTIL MOUSEK=2
CASE 7
REPEAT
MOUSE x%,y%,k%
IF MOUSEK=1 AND MOUSEY<404
GET 0,0,x%-1,403-1,Ver$
PUT 1,0,Ver$,ver_mod%
COLOR 0
DEFLINE 1,bh,0,0
DRAW 0,0 TO 0,403-1
ENDIF
UNTIL MOUSEK=2
CASE 8
REPEAT
MOUSE x%,y%,k%
IF MOUSEK=1 AND MOUSEY<404
GET 1,0,x%-1,403-1,Ver$
PUT 0,0,Ver$,ver_mod%
COLOR 0
DEFLINE 1,bh,0,0
DRAW 0,0 TO 639,0
ENDIF
UNTIL MOUSEK=2
ENDSELECT
GET 0,0,640,403,z$
RETURN
PROCEDURE pyramide2
CLR Var1%,Var2%,Var3%,Var4%,hdif%,br%
DEFMOUSE 5
REPEAT
MOUSE x%,y%,k%
UNTIL MOUSEK=1
HIDEM
GRAPHMODE 3
REPEAT
MOUSE x1%,y1%,k%
UNTIL k%=0
x2%=x1%
y2%=y1%
REPEAT
DRAW x1%,y1% TO x2%,y2%
REPEAT
MOUSE x%,y%,k%
UNTIL x2%<>x% OR y2%<>y% OR k%=1
DRAW x1%,y1% TO x2%,y2%
x2%=x%
y2%=y%
UNTIL k%=1
REPEAT
UNTIL MOUSEK=0
x3%=x2%
y3%=y2%
br%=x2%-x1%
hdif%=y2%-y1%
REPEAT
DRAW x1%,y1% TO x2%,y2% TO x3%,y3% TO x3%-br%,y3%-hdif% TO x1%,y1%
REPEAT
MOUSE x%,y%,k%
UNTIL x3%<>x% OR y3%<>y% OR k%=1
DRAW x1%,y1% TO x2%,y2% TO x3%,y3% TO x3%-br%,y3%-hdif% TO x1%,y1%
x3%=x%
y3%=y%
UNTIL k%=1
REPEAT
UNTIL MOUSEK=0
x4%=x3%-br%
y4%=y3%-hdif%
X5%=x3%
Y5%=y3%
Vdif%=x3%-x2%
Ho%=y2%-y3%
Var_1=INT(Vdif%/(Ho%+1.0E-12))
Var1%=(Var_1*y4%+x4%)
Var3%=Var_1*y3%+x3%
Var_2=hdif%/(br%+1.0E-12)
Var2%=y3%-INT(Var_2*x3%)
Var4%=y1%-INT(Var_2*x1%)
REPEAT
@Setpyramide
REPEAT
MOUSE x%,y%,k%
UNTIL X5%<>x% OR Y5%<>y% OR k%=1
@Setpyramide
X5%=x%
Y5%=y%
UNTIL k%=1
@Setpyramide
REPEAT
UNTIL MOUSEK=0
GRAPHMODE graf%
RETURN
PROCEDURE Setpyramide
Var1%=Var_1*(Y5%+Ho%)+X5%-Vdif%
Var2%=Y5%-(Var_2*X5%)
IF y3%<y2%
IF Var2%<Var2%
DRAW x3%,y3% TO X5%,Y5% TO x4%,y4% TO x3%,y3%
IF Var2%<Var4%
DRAW x1%,y1% TO x2%,y2% TO X5%,Y5% TO x1%,y1%
IF X5%<(x3%+x1%)/2
DRAW x2%,y2% TO x3%,y3%
DRAW x1%,y1% TO x4%,y4%
ELSE
DRAW x4%,y4% TO x1%,y1%
DRAW x2%,y2% TO x3%,y3%
ENDIF
ELSE
IF Var1%>Var3%
DRAW X5%,Y5% TO x1%,y1% TO x4%,y4%
DRAW X5%,Y5% TO x2%,y2% TO x3%,y3%
ELSE
DRAW X5%,Y5% TO x2%,y2% TO x3%,y3%
IF Var1%>Var1%
DRAW x4%,y4% TO x1%,y1% TO X5%,Y5%
ELSE
DRAW X5%,Y5% TO x1%,y1% TO x4%,y4%
ENDIF
ENDIF
DRAW x1%,y1% TO x2%,y2%
ENDIF
ELSE
IF Var1%<Var1%
DRAW x2%,y2% TO x1%,y1% TO X5%,Y5% TO x2%,y2% TO x3%,y3% TO X5%,Y5%
DRAW x1%,y1% TO x4%,y4% TO X5%,Y5%
ELSE
DRAW X5%,Y5% TO x4%,y4% TO x1%,y1% TO x2%,y2% TO X5%,Y5% TO x1%,y1%
IF Var1%<Var3%
DRAW x2%,y2% TO x3%,y3% TO X5%,Y5%
ELSE
DRAW x2%,y2% TO x3%,y3% TO X5%,Y5%
ENDIF
ENDIF
DRAW x3%,y3% TO x4%,y4%
ENDIF
ELSE
DRAW x1%,y1% TO x2%,y2% TO x3%,y3% TO x4%,y4% TO x1%,y1%
IF Var1%<Var1%
IF Var2%<Var2%
DRAW x3%,y3% TO X5%,Y5% TO x4%,y4%
IF Var3%>Var1%
DRAW X5%,Y5% TO x2%,y2%
ELSE
DRAW x2%,y2% TO X5%,Y5%
ENDIF
DRAW x1%,y1% TO X5%,Y5%
ELSE
IF Var3%>Var1%
DRAW x1%,y1% TO X5%,Y5% TO x2%,y2%
DRAW x3%,y3% TO X5%,Y5%
ELSE
DRAW x2%,y2% TO X5%,Y5% TO x3%,y3%
IF Var4%>Var2%
DRAW x1%,y1% TO X5%,Y5%
ELSE
DRAW x1%,y1% TO X5%,Y5%
ENDIF
ENDIF
DRAW x4%,y4% TO X5%,Y5%
ENDIF
ELSE
DRAW x4%,y4% TO X5%,Y5% TO x1%,y1%
IF Var4%>Var2%
DRAW X5%,Y5% TO x2%,y2%
DRAW x3%,y3% TO X5%,Y5%
ELSE
IF Var2%>Var2%
DRAW X5%,Y5% TO x3%,y3%
ELSE
DRAW x3%,y3% TO X5%,Y5%
ENDIF
DRAW x2%,y2% TO X5%,Y5%
ENDIF
ENDIF
ENDIF
RETURN
PROCEDURE Lang_linie
DEFMOUSE 3
LOCAL Mx%,my%,x1%,y1%,br%,Ho%
ALERT 3,"Was kann ich für Sie tun ?",1,"_Linienzug|_Strahlen|L_inie",Linienflag%
IF Linienflag%=3
Linienflag%=0
ENDIF
REPEAT
UNTIL MOUSEK=1
HIDEM
GRAPHMODE 3
REPEAT
MOUSE Mx%,my%,k%
UNTIL k%=0
x1%=Mx%
y1%=my%
Start17:
REPEAT
DRAW Mx%,my% TO x1%,y1%
REPEAT
MOUSE x%,y%,k%
UNTIL x1%<>x% OR y1%<>y% OR k%
DRAW Mx%,my% TO x1%,y1%
GRAPHMODE 3
x1%=x%
y1%=y%
UNTIL k%
REPEAT
UNTIL MOUSEK=0
IF k%=1
IF Linienflag%=0
br%=x%-Mx%
Ho%=y%-my%
REPEAT
REPEAT
DRAW Mx%,my% TO x1%,y1%
REPEAT
MOUSE x%,y%,k%
UNTIL x1%<>x% OR y1%<>y% OR k%
DRAW Mx%,my% TO x1%,y1%
x1%=x%
y1%=y%
Mx%=x%-br%
my%=y%-Ho%
UNTIL k%
IF k%=1
DRAW Mx%,my% TO x1%,y1%
ENDIF
REPEAT
UNTIL MOUSEK=0
UNTIL k%=2
GOTO Ende
ENDIF
DRAW Mx%,my% TO x1%,y1%
IF Linienflag%=1
Mx%=x%
my%=y%
ENDIF
GOTO Start17
ENDIF
REPEAT
UNTIL MOUSEK=0
Ende:
GRAPHMODE graf%
RETURN
PROCEDURE ellipse
REPEAT
GOSUB hilfs_maus
WHILE MOUSEK=FALSE
MOUSE x%,y%,k%
HIDEM
SELECT b|
CASE 0
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 1
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 2
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 3
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 4
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ENDSELECT
PAUSE 3
SELECT b|
CASE 0
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 1
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 2
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 3
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 4
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ENDSELECT
WEND
WHILE MOUSEK=1
GRAPHMODE graf%
IF fu%=1
SELECT b|
CASE 0
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 1
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 2
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 3
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 4
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ENDSELECT
ELSE
SELECT b|
CASE 0
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 1
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
PELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 2
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
PELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 3
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
PELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
PELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
PELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 4
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
PELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ENDSELECT
ENDIF
IF fu%=1
SELECT b|
CASE 0
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 1
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 2
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 3
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 4
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ENDSELECT
ELSE
SELECT b|
CASE 0
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 1
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
PELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 2
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
PELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 3
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
PELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
PELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
PELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
CASE 4
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
PELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
ENDSELECT
ENDIF
WEND
UNTIL MOUSEK=2
SHOWM
RETURN
PROCEDURE line
REPEAT
GOSUB hilfs_maus
WHILE MOUSEK=FALSE
MOUSE x%,y%,k%
HIDEM
SELECT b|
CASE 0
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
CASE 1
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
CASE 2
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
CASE 3
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
DRAW 639-x%,403-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
CASE 4
DRAW 639-x%,403-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
ENDSELECT
PAUSE 5
SELECT b|
CASE 0
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
CASE 1
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
CASE 2
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
CASE 3
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
DRAW 639-x%,403-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
CASE 4
DRAW 639-x%,403-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
ENDSELECT
WEND
WHILE MOUSEK=1
GRAPHMODE graf%
DRAW x%,y% TO a%,b%
SELECT b|
CASE 0
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
CASE 1
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
CASE 2
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
CASE 3
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
DRAW 639-x%,403-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
CASE 4
DRAW 639-x%,403-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
ENDSELECT
WEND
UNTIL MOUSEK=2
SHOWM
RETURN
PROCEDURE rechteck
REPEAT
GOSUB hilfs_maus
WHILE MOUSEK=FALSE
MOUSE x%,y%,k%
SELECT b|
CASE 0
BOX a%,b%,x%,y%
CASE 1
BOX a%,b%,x%,y%
BOX a%,403-1-b%,x%,403-1-y%
CASE 2
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
CASE 3
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
BOX a%,403-1-b%,x%,403-1-y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
BOX a%,b%,x%,y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
PAUSE 3
SELECT b|
CASE 0
BOX a%,b%,x%,y%
CASE 1
BOX a%,b%,x%,y%
BOX a%,403-1-b%,x%,403-1-y%
CASE 2
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
CASE 3
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
BOX a%,403-1-b%,x%,403-1-y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
BOX a%,b%,x%,y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
WEND
WHILE MOUSEK=1
GRAPHMODE graf%
IF fu%=1
IF ka%=1
SELECT b|
CASE 0
BOX a%,b%,x%,y%
CASE 1
BOX a%,b%,x%,y%
BOX a%,403-1-b%,x%,403-1-y%
CASE 2
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
CASE 3
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
BOX a%,403-1-b%,x%,403-1-y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
BOX a%,b%,x%,y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ELSE
SELECT b|
CASE 0
RBOX a%,b%,x%,y%
CASE 1
RBOX a%,b%,x%,y%
RBOX a%,403-1-b%,x%,403-1-y%
CASE 2
RBOX a%,b%,x%,y%
RBOX 639-a%,b%,639-x%,y%
CASE 3
RBOX a%,b%,x%,y%
RBOX 639-a%,b%,639-x%,y%
RBOX a%,403-1-b%,x%,403-1-y%
RBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
RBOX a%,b%,x%,y%
RBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ENDIF
ELSE
IF ka%=1
SELECT b|
CASE 0
PBOX a%,b%,x%,y%
CASE 1
PBOX a%,b%,x%,y%
PBOX a%,403-1-b%,x%,403-1-y%
CASE 2
PBOX a%,b%,x%,y%
PBOX 639-a%,b%,639-x%,y%
CASE 3
PBOX a%,b%,x%,y%
PBOX 639-a%,b%,639-x%,y%
PBOX a%,403-1-b%,x%,403-1-y%
PBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
PBOX a%,b%,x%,y%
PBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ELSE
SELECT b|
CASE 0
PRBOX a%,b%,x%,y%
CASE 1
PRBOX a%,b%,x%,y%
PRBOX a%,403-1-b%,x%,403-1-y%
CASE 2
PRBOX a%,b%,x%,y%
PRBOX 639-a%,b%,639-x%,y%
CASE 3
PRBOX a%,b%,x%,y%
PRBOX 639-a%,b%,639-x%,y%
PRBOX a%,403-1-b%,x%,403-1-y%
PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
PRBOX a%,b%,x%,y%
PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ENDIF
ENDIF
WEND
IF fu%=1
IF ka%=1
SELECT b|
CASE 0
BOX a%,b%,x%,y%
CASE 1
BOX a%,b%,x%,y%
BOX a%,403-1-b%,x%,403-1-y%
CASE 2
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
CASE 3
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
BOX a%,403-1-b%,x%,403-1-y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
BOX a%,b%,x%,y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ELSE
SELECT b|
CASE 0
RBOX a%,b%,x%,y%
CASE 1
RBOX a%,b%,x%,y%
RBOX a%,403-1-b%,x%,403-1-y%
CASE 2
RBOX a%,b%,x%,y%
RBOX 639-a%,b%,639-x%,y%
CASE 3
RBOX a%,b%,x%,y%
RBOX 639-a%,b%,639-x%,y%
RBOX a%,403-1-b%,x%,403-1-y%
RBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
RBOX a%,b%,x%,y%
RBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ENDIF
ELSE
IF ka%=1
SELECT b|
CASE 0
PBOX a%,b%,x%,y%
CASE 1
PBOX a%,b%,x%,y%
PBOX a%,403-1-b%,x%,403-1-y%
CASE 2
PBOX a%,b%,x%,y%
PBOX 639-a%,b%,639-x%,y%
CASE 3
PBOX a%,b%,x%,y%
PBOX 639-a%,b%,639-x%,y%
PBOX a%,403-1-b%,x%,403-1-y%
PBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
PBOX a%,b%,x%,y%
PBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ELSE
SELECT b|
CASE 0
PRBOX a%,b%,x%,y%
CASE 1
PRBOX a%,b%,x%,y%
PRBOX a%,403-1-b%,x%,403-1-y%
CASE 2
PRBOX a%,b%,x%,y%
PRBOX 639-a%,b%,639-x%,y%
CASE 3
PRBOX a%,b%,x%,y%
PRBOX 639-a%,b%,639-x%,y%
PRBOX a%,403-1-b%,x%,403-1-y%
PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
PRBOX a%,b%,x%,y%
PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ENDIF
ENDIF
IF fu%=1 AND ka%=2
SELECT b|
CASE 0
RBOX a%,b%,x%,y%
CASE 1
RBOX a%,b%,x%,y%
RBOX a%,403-1-b%,x%,403-1-y%
CASE 2
RBOX a%,b%,x%,y%
RBOX 639-a%,b%,639-x%,y%
CASE 3
RBOX a%,b%,x%,y%
RBOX 639-a%,b%,639-x%,y%
RBOX a%,403-1-b%,x%,403-1-y%
RBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
RBOX a%,b%,x%,y%
RBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ENDIF
IF ka%=1 AND fu%=2
SELECT b|
CASE 0
PBOX a%,b%,x%,y%
CASE 1
PBOX a%,b%,x%,y%
PBOX a%,403-1-b%,x%,403-1-y%
CASE 2
PBOX a%,b%,x%,y%
PBOX 639-a%,b%,639-x%,y%
CASE 3
PBOX a%,b%,x%,y%
PBOX 639-a%,b%,639-x%,y%
PBOX a%,403-1-b%,x%,403-1-y%
PBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
PBOX a%,b%,x%,y%
PBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ENDIF
IF ka%=2 AND fu%=2
SELECT b|
CASE 0
PRBOX a%,b%,x%,y%
CASE 1
PRBOX a%,b%,x%,y%
PRBOX a%,403-1-b%,x%,403-1-y%
CASE 2
PRBOX a%,b%,x%,y%
PRBOX 639-a%,b%,639-x%,y%
CASE 3
PRBOX a%,b%,x%,y%
PRBOX 639-a%,b%,639-x%,y%
PRBOX a%,403-1-b%,x%,403-1-y%
PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
PRBOX a%,b%,x%,y%
PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ENDIF
IF ka%=1 AND fu%=1
SELECT b|
CASE 0
BOX a%,b%,x%,y%
CASE 1
BOX a%,b%,x%,y%
BOX a%,403-1-b%,x%,403-1-y%
CASE 2
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
CASE 3
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
BOX a%,403-1-b%,x%,403-1-y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
BOX a%,b%,x%,y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ENDIF
UNTIL MOUSEK=2
SHOWM
RETURN
PROCEDURE quadrat
REPEAT
GOSUB hilfs_maus
WHILE MOUSEK=0
MOUSE x%,y%,k%
IF ABS(a%-x%)>ABS(b%-y%)
y%=b%-(ABS(a%-x%)*SGN(b%-y%))
ELSE
x%=a%-(ABS(b%-y%)*SGN(a%-x%))
ENDIF
SELECT b|
CASE 0
BOX a%,b%,x%,y%
CASE 1
BOX a%,b%,x%,y%
BOX a%,403-1-b%,x%,403-1-y%
CASE 2
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
CASE 3
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
BOX a%,403-1-b%,x%,403-1-y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
BOX a%,b%,x%,y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
PAUSE 3
SELECT b|
CASE 0
BOX a%,b%,x%,y%
CASE 1
BOX a%,b%,x%,y%
BOX a%,403-1-b%,x%,403-1-y%
CASE 2
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
CASE 3
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
BOX a%,403-1-b%,x%,403-1-y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
BOX a%,b%,x%,y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
WEND
SELECT b|
CASE 0
BOX a%,b%,x%,y%
CASE 1
BOX a%,b%,x%,y%
BOX a%,403-1-b%,x%,403-1-y%
CASE 2
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
CASE 3
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
BOX a%,403-1-b%,x%,403-1-y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
BOX a%,b%,x%,y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 0
BOX a%,b%,x%,y%
CASE 1
BOX a%,b%,x%,y%
BOX a%,403-1-b%,x%,403-1-y%
CASE 2
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
CASE 3
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
BOX a%,403-1-b%,x%,403-1-y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
BOX a%,b%,x%,y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
WHILE MOUSEK=1
GRAPHMODE graf%
IF fu%=1
IF ka%=1
SELECT b|
CASE 0
BOX a%,b%,x%,y%
CASE 1
BOX a%,b%,x%,y%
BOX a%,403-1-b%,x%,403-1-y%
CASE 2
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
CASE 3
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
BOX a%,403-1-b%,x%,403-1-y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
BOX a%,b%,x%,y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ELSE
SELECT b|
CASE 0
RBOX a%,b%,x%,y%
CASE 1
RBOX a%,b%,x%,y%
RBOX a%,403-1-b%,x%,403-1-y%
CASE 2
RBOX a%,b%,x%,y%
RBOX 639-a%,b%,639-x%,y%
CASE 3
RBOX a%,b%,x%,y%
RBOX 639-a%,b%,639-x%,y%
RBOX a%,403-1-b%,x%,403-1-y%
RBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
RBOX a%,b%,x%,y%
RBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ENDIF
ELSE
IF ka%=1
SELECT b|
CASE 0
PBOX a%,b%,x%,y%
CASE 1
PBOX a%,b%,x%,y%
PBOX a%,403-1-b%,x%,403-1-y%
CASE 2
PBOX a%,b%,x%,y%
PBOX 639-a%,b%,639-x%,y%
CASE 3
PBOX a%,b%,x%,y%
PBOX 639-a%,b%,639-x%,y%
PBOX a%,403-1-b%,x%,403-1-y%
PBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
PBOX a%,b%,x%,y%
PBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ELSE
SELECT b|
CASE 0
PRBOX a%,b%,x%,y%
CASE 1
PRBOX a%,b%,x%,y%
PRBOX a%,403-1-b%,x%,403-1-y%
CASE 2
PRBOX a%,b%,x%,y%
PRBOX 639-a%,b%,639-x%,y%
CASE 3
PRBOX a%,b%,x%,y%
PRBOX 639-a%,b%,639-x%,y%
PRBOX a%,403-1-b%,x%,403-1-y%
PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
PRBOX a%,b%,x%,y%
PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ENDIF
ENDIF
WEND
UNTIL MOUSEK=2
RETURN
PROCEDURE kreis
REPEAT
GOSUB hilfs_maus
WHILE MOUSEK=FALSE
MOUSE x%,y%,k%
IF fu%=1
SELECT b|
CASE 0
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 1
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 2
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 3
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 4
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
ENDSELECT
ELSE
SELECT b|
CASE 0
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 1
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 2
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 3
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 4
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
ENDSELECT
ENDIF
WEND
WHILE MOUSEK=1
GRAPHMODE 1
IF fu%=1
SELECT b|
CASE 0
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 1
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 2
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 3
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 4
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
ENDSELECT
ELSE
SELECT b|
CASE 0
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 1
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 2
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 3
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 4
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
ENDSELECT
ENDIF
WEND
UNTIL MOUSEK=2
GRAPHMODE graf%
RETURN
PROCEDURE kreis_aus
GET 0,0,640,403,l$
GRAPHMODE 1
COLOR 1
PRINT AT(1,1);"Kreis Ausschnitt"
PRINT AT(1,2);"für Kreis Funktion "
PRINT AT(1,4);"X Koordinate (0 - 360) "
PRINT AT(1,5);"Alter Wert ";kreis_1a%
PRINT AT(1,6);"Neuer Wert ";
FORM INPUT 3,kreis_1a$
kreis_1a%=VAL(kreis_1a$)
PRINT AT(1,8);"Y Koordinate (0 - 360)"
PRINT AT(1,9);"Alter Wert ";kreis_2a%
PRINT AT(1,10);"Neuer Wert ";
FORM INPUT 3,kreis_2a$
kreis_2a%=VAL(kreis_2a$)
GRAPHMODE graf%
PUT 0,0,z$
RETURN
PROCEDURE draw2m
REPEAT
MOUSE x%,y%,k%
IF k%=1
HIDEM
REPEAT
DRAW x%,y% TO x%+Xkord%,y%+Ykord%
SELECT b|
CASE 0
DRAW x%,y% TO x%+Xkord%,y%+Ykord%
CASE 1
DRAW x%,y% TO x%+Xkord%,y%+Ykord%
DRAW 639-x%,y% TO 639-x%+Xkord%,y%+Ykord%
CASE 3
DRAW x%,y% TO x%+Xkord%,y%+Ykord%
DRAW 639-x%,y% TO 639-x%+Xkord%,y%+Ykord%
DRAW x%,403-1-y% TO x%+Xkord%,403-1-y%+Ykord%
DRAW 639-x%,403-1-y% TO 639-x%+Xkord%,403-1-y%+Ykord%
CASE 4
DRAW x%,y% TO x%+Xkord%,y%+Ykord%
DRAW 639-x%,403-1-y% TO 639-x%+Xkord%,403-1-y%+Ykord%
CASE 2
DRAW x%,y% TO x%+Xkord%,y%+Ykord%
DRAW x%,403-1-y% TO x%+Xkord%,403-1-y%+Ykord%
ENDSELECT
MOUSE x%,y%,k%
UNTIL k%=0
ENDIF
SHOWM
UNTIL k%=2
RETURN
PROCEDURE rastm2
IF Xrast%=0 AND Yrast%=0
Yrast%=1
ENDIF
DEFMOUSE 3
ALERT 3,"Wie wollen Sie Rastern ?",1,"_Normal|_Invers",d%
HIDEM
DIM F4%(1)
PUT FALSE,FALSE,Boxbild$
GOSUB hilfs_maus
WHILE MOUSEK=FALSE
MOUSE x%,y%,k%
BOX a%,b%,x%,y%
PAUSE 3
BOX a%,b%,x%,y%
WEND
IF y%>402
y%=402
ENDIF
WHILE MOUSEK=1 AND MOUSEY<404 AND b%<404 AND y%<404
GET a%,b%,x%,y%,bild$
GRAPHMODE graf%
WEND
FOR y1%=b% TO y% STEP Yrast%+1
FOR x1%=a% TO x% STEP Xrast%+1
FOR B1%=y1% TO y1%+Yrast%
FOR a1%=x1% TO x1%+Xrast%
G%=POINT(a1%,B1%)
INC F4%(G%)
NEXT a1%
NEXT B1%
SELECT d%
CASE 1
M%=MAX(F4%(0),F4%(1))
CASE 2
M%=MIN(F4%(0),F4%(1))
ENDSELECT
FOR V4%=0 TO 1
IF F4%(V4%)=M%
COLOR V4%
FOR L%=y1% TO y1%+Yrast%
FOR k%=x1% TO x1%+Xrast%
DRAW k%,L%
NEXT k%
NEXT L%
ENDIF
NEXT V4%
FOR O%=0 TO 1
F4%(O%)=0
NEXT O%
NEXT x1%
NEXT y1%
GRAPHMODE graf%
ERASE F4%()
RETURN
PROCEDURE vermod1
GOSUB Hals
GRAPHMODE 1
DEFFILL 8
PBOX 176,30,463,347
DEFFILL 8
PBOX 187,37,453,341
BOX 186,36,454,342
BOX 188,38,452,340
BOX 190,40,450,338
BOX 192,42,448,336
BOX 193,43,447,335
DRAW 193,64 TO 447,64
DRAW 193,65 TO 447,65
DRAW 193,67 TO 447,67
DRAW 193,69 TO 447,69
DRAW 193,70 TO 447,70
DEFTEXT 1,FALSE,8,6
TEXT 215,56,"--- Bild Verschieben 1 ---"
TEXT 205,90,"ab_maus_nach_oben "
TEXT 205,115,"vor_maus_nach_unten "
TEXT 205,140,"ab_maus_nach_links "
TEXT 205,165,"ab_maus_nach_rechts "
TEXT 205,190,"bis_maus_schräg_rechts "
TEXT 205,215,"bis_maus_schräg_links "
TEXT 205,240,"verzerren_ab_maus_links_oben "
TEXT 205,265,"verzerren_ab_maus_rechts_oben"
TEXT 205,290,"verschmieren_ab_maus_oben "
TEXT 205,315,"verschmieren_bis_maus_rechts "
REPEAT
IF MOUSEX>192 AND MOUSEX<445 AND MOUSEK=1
IF MOUSEY>70 AND MOUSEY<100
verschieben=1
GOSUB Verschieben_2
GOTO Ende_3
ENDIF
IF MOUSEY>100 AND MOUSEY<125
verschieben=2
GOSUB Verschieben_2
GOTO Ende_3
ENDIF
IF MOUSEY>125 AND MOUSEY<150
verschieben=3
GOSUB Verschieben_2
GOTO Ende_3
ENDIF
IF MOUSEY>150 AND MOUSEY<175
verschieben=4
GOSUB Verschieben_2
GOTO Ende_3
ENDIF
IF MOUSEY>175 AND MOUSEY<200
verschieben=5
GOSUB Verschieben_2
GOTO Ende_3
ENDIF
IF MOUSEY>200 AND MOUSEY<225
verschieben=6
GOSUB Verschieben_2
GOTO Ende_3
ENDIF
IF MOUSEY>225 AND MOUSEY<250
verschieben=7
GOSUB Verschieben_2
GOTO Ende_3
ENDIF
IF MOUSEY>250 AND MOUSEY<275
verschieben=8
GOSUB Verschieben_2
GOTO Ende_3
ENDIF
IF MOUSEY>275 AND MOUSEY<300
verschieben=9
GOSUB Verschieben_2
GOTO Ende_3
ENDIF
IF MOUSEY>300 AND MOUSEY<325
verschieben=10
GOSUB Verschieben_2
GOTO Ende_3
ENDIF
ENDIF
UNTIL MOUSEK=2
verschieben=11
GOSUB Verschieben_2
Ende_3:
GOSUB Grund
GRAPHMODE graf%
IF f%<100
DEFFILL f%
ELSE
DEFFILL muster$
ENDIF
RETURN
PROCEDURE vermod2
GOSUB Hals
GRAPHMODE 1
COLOR 1
DEFFILL 8
PBOX 176,30,463,297
DEFFILL 8
PBOX 187,37,453,291
BOX 186,36,454,292
BOX 188,38,452,290
BOX 190,40,450,288
BOX 192,42,448,286
BOX 193,43,447,285
DRAW 193,64 TO 447,64
DRAW 193,65 TO 447,65
DRAW 193,67 TO 447,67
DRAW 193,69 TO 447,69
DRAW 193,70 TO 447,70
DEFTEXT 1,FALSE,8,6
TEXT 215,56,"--- Bild Verschieben 1 ---"
TEXT 260,90," nach unten 1 "
TEXT 260,115," nach oben 1 "
TEXT 260,140," nach rechts 1 "
TEXT 260,165," nach links 1 "
TEXT 260,190," nach unten 2 "
TEXT 260,215," nach oben 2 "
TEXT 260,240," nach rechts 2 "
TEXT 260,265," nach links 2 "
REPEAT
IF MOUSEX>192 AND MOUSEX<445 AND MOUSEK=1
IF MOUSEY>70 AND MOUSEY<100
verschieben_2=1
GOSUB Verschieben_4
GOTO Ende_4
ENDIF
IF MOUSEY>100 AND MOUSEY<125
verschieben_2=2
GOSUB Verschieben_4
GOTO Ende_4
ENDIF
IF MOUSEY>125 AND MOUSEY<150
verschieben_2=3
GOSUB Verschieben_4
GOTO Ende_4
ENDIF
IF MOUSEY>150 AND MOUSEY<175
verschieben_2=4
GOSUB Verschieben_4
GOTO Ende_4
ENDIF
IF MOUSEY>175 AND MOUSEY<200
verschieben_2=5
GOSUB Verschieben_4
GOTO Ende_4
ENDIF
IF MOUSEY>200 AND MOUSEY<225
verschieben_2=6
GOSUB Verschieben_4
GOTO Ende_4
ENDIF
IF MOUSEY>225 AND MOUSEY<250
verschieben_2=7
GOSUB Verschieben_4
GOTO Ende_4
ENDIF
IF MOUSEY>250 AND MOUSEY<275
verschieben_2=8
GOSUB Verschieben_4
GOTO Ende_4
ENDIF
ENDIF
UNTIL MOUSEK=2
Ende_4:
verschieben_2=9
GOSUB Verschieben_4
GOSUB Grund
GRAPHMODE graf%
IF f%<100
DEFFILL f%
ELSE
DEFFILL muster$
ENDIF
RETURN
PROCEDURE zkreis90
IF z_linie_g%=FALSE
z_linie_g%=10
ENDIF
REPEAT
SHOWM
WHILE MOUSEK=1
HIDEM
X5%=INT((MOUSEX-300)/z_linie_g%)*z_linie_g%+300
Y5%=INT((MOUSEY-100)/z_linie_g%)
Y6%=Y5%*z_linie_g%+100
x%=X5%
y%=Y6%
IF ka%=1
IF fu%=2
SELECT b|
CASE 0
PCIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
CASE 1
PCIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
PCIRCLE x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
CASE 2
PCIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
PCIRCLE 639-x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
CASE 3
PCIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
PCIRCLE 639-x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
PCIRCLE x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
PCIRCLE 639-x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
CASE 4
PCIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
PCIRCLE 639-x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
ENDSELECT
ENDIF
IF fu%=1
SELECT b|
CASE 0
CIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
CASE 1
CIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
CIRCLE x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
CASE 2
CIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
CIRCLE 639-x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
CASE 3
CIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
CIRCLE 639-x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
CIRCLE x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
CIRCLE 639-x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
CASE 4
CIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
CIRCLE 639-x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
ENDSELECT
ENDIF
ENDIF
WEND
UNTIL MOUSEK=2
RETURN
PROCEDURE zbox90
IF z_linie_g%=FALSE
z_linie_g%=10
ENDIF
REPEAT
SHOWM
WHILE MOUSEK=1
HIDEM
x1%=INT((MOUSEX-300)/z_linie_g%)*z_linie_g%+300
Yz%=INT((MOUSEY-100)/z_linie_g%)
y1%=Yz%*z_linie_g%+100
a%=x1%
b%=y1%
x%=x1%+z_linie_g%
y%=y1%+z_linie_g%
IF ka%=1
IF fu%=2
SELECT b|
CASE 0
PBOX a%,b%,x%,y%
CASE 1
PBOX a%,b%,x%,y%
PBOX a%,403-1-b%,x%,403-1-y%
CASE 2
PBOX a%,b%,x%,y%
PBOX 639-a%,b%,639-x%,y%
CASE 3
PBOX a%,b%,x%,y%
PBOX 639-a%,b%,639-x%,y%
PBOX a%,403-1-b%,x%,403-1-y%
PBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
PBOX a%,b%,x%,y%
PBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ENDIF
IF fu%=1
SELECT b|
CASE 0
BOX a%,b%,x%,y%
CASE 1
BOX a%,b%,x%,y%
BOX a%,403-1-b%,x%,403-1-y%
CASE 2
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
CASE 3
BOX a%,b%,x%,y%
BOX 639-a%,b%,639-x%,y%
BOX a%,403-1-b%,x%,403-1-y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
BOX a%,b%,x%,y%
BOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ENDIF
ENDIF
IF ka%=2
IF fu%=2
SELECT b|
CASE 0
PRBOX a%,b%,x%,y%
CASE 1
PRBOX a%,b%,x%,y%
PRBOX a%,403-1-b%,x%,403-1-y%
CASE 2
PRBOX a%,b%,x%,y%
PRBOX 639-a%,b%,639-x%,y%
CASE 3
PRBOX a%,b%,x%,y%
PRBOX 639-a%,b%,639-x%,y%
PRBOX a%,403-1-b%,x%,403-1-y%
PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
PRBOX a%,b%,x%,y%
PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ENDIF
IF fu%=1
SELECT b|
CASE 0
RBOX a%,b%,x%,y%
CASE 1
RBOX a%,b%,x%,y%
RBOX a%,403-1-b%,x%,403-1-y%
CASE 2
RBOX a%,b%,x%,y%
RBOX 639-a%,b%,639-x%,y%
CASE 3
RBOX a%,b%,x%,y%
RBOX 639-a%,b%,639-x%,y%
RBOX a%,403-1-b%,x%,403-1-y%
RBOX 639-a%,403-1-b%,639-x%,403-1-y%
CASE 4
RBOX a%,b%,x%,y%
RBOX 639-a%,403-1-b%,639-x%,403-1-y%
ENDSELECT
ENDIF
ENDIF
WEND
UNTIL MOUSEK=2
RETURN
PROCEDURE text90
DEFTEXT ,0
LOCAL a$
DEFMOUSE 3
HIDEM
REPEAT
B$=""
GRAPHMODE 3
REPEAT
MOUSE x%,y%,k%
TEXT x%,y%,B$+"|"
REPEAT
a$=INKEY$
UNTIL x%<>MOUSEX OR y%<>MOUSEY OR MOUSEK<>0 OR a$<>""
TEXT x%,y%,B$+"|"
MOUSE x%,y%,k%
a$=LEFT$(a$)
IF a$=CHR$(13)
GOTO Starttext
ENDIF
IF a$=CHR$(27)
B$=""
GOTO Marktext
ENDIF
IF a$=CHR$(8) OR a$=CHR$(127) THEN
IF LEN(B$)>0
B$=LEFT$(B$,LEN(B$)-1)
ENDIF
ELSE
B$=B$+a$
ENDIF
Marktext:
UNTIL MOUSEK=1
Starttext:
GRAPHMODE graf%
TEXT x%,y%,B$
MOUSE x%,y%,k%
IF MOUSEK=1
TEXT x%,y%,B$
DEFMOUSE 3
GOTO Sende
ENDIF
UNTIL MOUSEK=2
Sende:
CLR B$
SHOWM
RETURN
PROCEDURE rays90
REPEAT
MOUSE x%,y%,k%
a%=x%
b%=y%
WHILE MOUSEK=1
HIDEM
MOUSE x%,y%,k%
DRAW x%,y% TO a%,b%
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
SELECT b|
CASE 0
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
CASE 1
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
CASE 3
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
DRAW 639-x%,403-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
CASE 4
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
DRAW 639-x%,403e-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
CASE 2
DRAW x%,y% TO a%+Xkord%,b%+Ykord%
DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
ENDSELECT
WEND
SHOWM
UNTIL MOUSEK=2
RETURN
PROCEDURE fill90
CLIP 0,0,640,480
REM BOX 60,430,200,450
REM BOX 58,428,202,452
REM BOX 57,427,203,453
REM PRINT AT(10,28);"Lade Füllmuster"
COLOR 1
GRAPHMODE 1
f%=0
muster$=""
muster=0
FOR x=0 TO 640 STEP 50
DEFFILL f%
PBOX x,0,50+x,100
INC f%
NEXT x
FOR x=0 TO 640 STEP 50
DEFFILL f%
PBOX x,100,50+x,200
INC f%
NEXT x
FOR x=0 TO 640 STEP 50
DEFFILL f%
PBOX x,200,50+x,300
INC f%
NEXT x
REPEAT
DEFMOUSE 3
REPEAT
EXIT IF MOUSEK=2
UNTIL MOUSEK=1
IF MOUSEK=1 AND MOUSEX>0 AND MOUSEX<50
IF MOUSEY>0 AND MOUSEY<100
f%=0
ENDIF
IF MOUSEY>100 AND MOUSEY<200
f%=13
ENDIF
IF MOUSEY>200 AND MOUSEY<300
f%=26
ENDIF
ENDIF
IF MOUSEK=1 AND MOUSEX>50 AND MOUSEX<100
IF MOUSEY>0 AND MOUSEY<100
f%=1
ENDIF
IF MOUSEY>100 AND MOUSEY<200
f%=14
ENDIF
IF MOUSEY>200 AND MOUSEY<300
f%=27
ENDIF
ENDIF
IF MOUSEK=1 AND MOUSEX>100 AND MOUSEX<150
IF MOUSEY>0 AND MOUSEY<100
f%=2
ENDIF
IF MOUSEY>100 AND MOUSEY<200
f%=15
ENDIF
IF MOUSEY>200 AND MOUSEY<300
f%=28
ENDIF
ENDIF
IF MOUSEK=1 AND MOUSEX>150 AND MOUSEX<200
IF MOUSEY>0 AND MOUSEY<100
f%=3
ENDIF
IF MOUSEY>100 AND MOUSEY<200
f%=16
ENDIF
IF MOUSEY>200 AND MOUSEY<300
f%=29
ENDIF
ENDIF
IF MOUSEK=1 AND MOUSEX>200 AND MOUSEX<250
IF MOUSEY>0 AND MOUSEY<100
f%=4
ENDIF
IF MOUSEY>100 AND MOUSEY<200
f%=17
ENDIF
IF MOUSEY>200 AND MOUSEY<300
f%=30
ENDIF
ENDIF
IF MOUSEK=1 AND MOUSEX>250 AND MOUSEX<300
IF MOUSEY>0 AND MOUSEY<100
f%=5
ENDIF
IF MOUSEY>100 AND MOUSEY<200
f%=18
ENDIF
IF MOUSEY>200 AND MOUSEY<300
f%=31
ENDIF
ENDIF
IF MOUSEK=1 AND MOUSEX>300 AND MOUSEX<350
IF MOUSEY>0 AND MOUSEY<100
f%=6
ENDIF
IF MOUSEY>100 AND MOUSEY<200
f%=19
ENDIF
IF MOUSEY>200 AND MOUSEY<300
f%=32
ENDIF
ENDIF
IF MOUSEK=1 AND MOUSEX>350 AND MOUSEX<404
IF MOUSEY>0 AND MOUSEY<100
f%=7
ENDIF
IF MOUSEY>100 AND MOUSEY<200
f%=20
ENDIF
IF MOUSEY>200 AND MOUSEY<300
f%=33
ENDIF
ENDIF
IF MOUSEK=1 AND MOUSEX>404 AND MOUSEX<450
IF MOUSEY>0 AND MOUSEY<100
f%=8
ENDIF
IF MOUSEY>100 AND MOUSEY<200
f%=21
ENDIF
IF MOUSEY>200 AND MOUSEY<300
f%=34
ENDIF
ENDIF
IF MOUSEK=1 AND MOUSEX>450 AND MOUSEX<500
IF MOUSEY>0 AND MOUSEY<100
f%=9
ENDIF
IF MOUSEY>100 AND MOUSEY<200
f%=22
ENDIF
IF MOUSEY>200 AND MOUSEY<300
f%=35
ENDIF
ENDIF
IF MOUSEK=1 AND MOUSEX>500 AND MOUSEX<550
IF MOUSEY>0 AND MOUSEY<100
f%=10
ENDIF
IF MOUSEY>100 AND MOUSEY<200
f%=23
ENDIF
IF MOUSEY>200 AND MOUSEY<300
f%=36
ENDIF
ENDIF
IF MOUSEK=1 AND MOUSEX>550 AND MOUSEX<600
IF MOUSEY>0 AND MOUSEY<100
f%=11
ENDIF
IF MOUSEY>100 AND MOUSEY<200
f%=24
ENDIF
IF MOUSEY>200 AND MOUSEY<300
f%=37
ENDIF
ENDIF
IF MOUSEK=1 AND MOUSEX>600 AND MOUSEX<640
IF MOUSEY>0 AND MOUSEY<100
f%=12
ENDIF
IF MOUSEY>100 AND MOUSEY<200
f%=25
ENDIF
IF MOUSEY>200 AND MOUSEY<300
f%=38
ENDIF
ENDIF
IF MOUSEK=1 AND MOUSEY>404
f%=100
muster$=""
RESTORE muster10
FOR i=1 TO 8
READ muster
muster$=muster$+CHR$(muster)
NEXT i
muster10:
DATA &x11111111
DATA &x11000011
DATA &x10111101
DATA &x10111101
DATA &x10111101
DATA &x10111101
DATA &x10111101
DATA &x11000011
DATA &x11111111
DEFFILL muster$
ENDIF
IF f%<100
DEFFILL f%
ELSE
DEFFILL muster$
ENDIF
PBOX 0,300,640,403
UNTIL MOUSEK=2
CLS
GRAPHMODE graf%
PUT 0,0,z$
CLIP 0,0,640,403
RETURN
PROCEDURE xelips90
REPEAT
GOSUB hilfs_maus
WHILE MOUSEK=FALSE
MOUSE x%,y%,k%
IF fu%=1
SELECT b|
CASE 0
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
CASE 1
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
CASE 2
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%)
CASE 3
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%)
ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
CASE 4
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
ENDSELECT
ELSE
SELECT b|
CASE 0
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
CASE 1
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
PELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
CASE 2
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
PELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%)
CASE 3
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
PELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%)
PELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
PELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
CASE 4
PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
PELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
ENDSELECT
ENDIF
WEND
WHILE MOUSEK=1
GRAPHMODE graf%
SELECT b|
CASE 0
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
CASE 1
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
CASE 2
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%)
CASE 3
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%)
ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
CASE 4
ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
ENDSELECT
WEND
UNTIL MOUSEK=2
RETURN
PROCEDURE xkreis90
REPEAT
GOSUB hilfs_maus
WHILE MOUSEK=FALSE
MOUSE x%,y%,k%
IF fu%=1
SELECT b|
CASE 0
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 1
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 2
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 3
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 4
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
ENDSELECT
ELSE
GRAPHMODE graf%
SELECT b|
CASE 0
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 1
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 2
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 3
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 4
PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
ENDSELECT
ENDIF
WEND
WHILE MOUSEK=1
SELECT b|
CASE 0
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 1
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 2
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 3
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CASE 4
CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
ENDSELECT
WEND
UNTIL MOUSEK=2
RETURN
PROCEDURE unfill
xmax&=639
ymax&=403
GET 0,0,640,403,z$
FOR y%=0 TO ymax&-1
GET 0,y%+1,639,y%+1,nachf$
PUT 0,y%,nachf$,6
NEXT y%
GET 0,0,639,403,u$
PUT 0,0,z$
FOR x%=0 TO xmax&-1
GET x%+1,0,x%+1,403,nachf$
PUT x%,0,nachf$,6
NEXT x%
PUT 0,0,u$,7
GRAPHMODE graf%
RETURN
REM ***** Nr 2 *******
PROCEDURE zeichne_2
x1%=0
y1%=0
x%=0
y%=0
flag%=0
GET 0,0,640,403,z$
REPEAT
UNTIL MOUSEK=1
DO
EXIT IF MOUSEK=2
PUT 0,0,z$
x1%=MOUSEX-x%
y1%=MOUSEY-y%
IF flag%=1
GOSUB funktion
ENDIF
IF flag%=2
REPEAT
PUT 0,0,z$
x%=MOUSEX
y%=MOUSEY
IF NOT MOUSEK=2
GOSUB funktion
ENDIF
WHILE MOUSEK=1
GET 0,0,640,403,z$
WEND
UNTIL MOUSEK=2
ENDIF
WHILE MOUSEK=1
INC flag%
IF flag%=1
MOUSE x%,y%,mousek
ENDIF
REPEAT
UNTIL MOUSEK=0
WEND
LOOP
GET 0,0,640,403,z$
RETURN
PROCEDURE funktion
IF a|=3
IF fu%=1
CIRCLE x%,y%,x1%,kreis_1a%,kreis_2a%
ENDIF
IF fu%=2
PCIRCLE x%,y%,x1%,kreis_1a%,kreis_2a%
ENDIF
ENDIF
IF a|=1
IF fu%=1
ELLIPSE x%,y%,x1%,y1%,kreis_1a%,kreis_2a%
ENDIF
IF fu%=2
PELLIPSE x%,y%,x1%,y1%,kreis_1a%,kreis_2a%
ENDIF
ENDIF
IF a|=2
IF ka%=1 AND fu%=1
BOX x%+x1%,y%+y1%,x%,y%
ENDIF
IF ka%=2 AND fu%=1
RBOX x%+x1%,y%+y1%,x%,y%
ENDIF
IF ka%=1 AND fu%=2
PBOX x%+x1%,y%+y1%,x%,y%
ENDIF
IF ka%=2 AND fu%=2
PRBOX x%+x1%,y%+y1%,x%,y%
ENDIF
ENDIF
RETURN