Schaakbord op beeldscherm, invoer en wijziging van
velden-data
Citation for published version (APA):
Meulen, van der, G. G. (1980). Schaakbord op beeldscherm, invoer en wijziging van velden-data. (MANROP-serie; Vol. 8). Technische Hogeschool Eindhoven.
Document status and date: Gepubliceerd: 01/01/1980
Document Version:
Uitgevers PDF, ook bekend als Version of Record
Please check the document version of this publication:
• A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website.
• The final author version and the galley proof are versions of the publication after peer review.
• The final published version features the final layout of the paper including the volume, issue and page numbers.
Link to publication
General rights
Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain
• You may freely distribute the URL identifying the publication in the public portal.
If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please follow below link for the End User Agreement:
www.tue.nl/taverne
Take down policy
If you believe that this document breaches copyright please contact us at:
openaccess@tue.nl
providing details and we will investigate your claim.
Management van de Ruimtelijke Ordening en Ruimtelijke Planning MANROP-serie nr.8
George G. van der Meulen
Eindhoven, oktober 1980
Schaakbord op beeldscherm, invoer en wijziging van velden-data.
Urbanistiek en Ruimtelijke Organisatie, Afdeling der Bouwkunde
Inhoud:
Inleiding
Struktuur van de werkwijze
Benodigde apparatuur en software Struktuur van het programma
Voorbeeld: een afdruk van het beeld op het beeldscherm Gebruiksmogelijkheden in het algemeen
-2-Inleiding.
Het uitbeelden van een schaakbord op een beeldscherm is in principe niet meer dan het tekenen van een vierkant en het verdelen daarvan in kleinere vie rkantj es •
Wil men deze deelruimten evenwel nuttig maken dan is het nodig om aan en naar elke willekeurige deelruimte te kunnen refereren, er bepaalde waarden aan toe te kennen, en teksten in te schrijven, tekeningen in aan te brengen. Kortom deze deelruimte op een bepaalde wijze te kunnen manipuleren.
Daartoe zullen we een betrekkelijk eenvoudig voorbeeld programmatisch voor-bereiden en uitwerken.
Achtereenvolgens komen hierna aan de orde: - de struktuur van de werkwijze
- de benodigde apparatuur en soft ware die nodig is voor het uittekenen en manipuleren;
- de struktuur van het komputerprogramma, zowel uitgedrukt in een stroom-diagrammatische benadering als weergegeven in termen van het gebruikte soft ware pakket;
- met de ontwikkelde programmatuur wordt een voorbeeld op het beeldscherm gegenereerd, waarvan een (beeldscherm-) hard copy wordt opgenomen. en, - tens lotte zullen de gebruiksmogelijkheden van deze werkwijze in een
algeme-ner kader geplaatst worden.
2. keuze van een deelruimte in het schaakbord
3. keuze van de menu-kategorie die aan die deelruimte wordt toegekend. De beide keuzen 2 en 3 gebeuren met behulp van kruisdraden, de zg. kursor. Deze kursor kan opgevat worden als een funktie van het beeldscherm, waarbij twee loodrecht op elkaar geplaatste en kontinu over het beeldscherm ver-plaatsbare lijnen door middel van hun snijpunt (ZQ gewenst) de koordinaten bepaalt van dat snijpunt.
Op die wijze is een referentiesysteem op te bouwen die op basis van die koordinaten berekent in welke deelruimte de kursor op een bepaald moment staat.
m_
n
~ t---i--+-ii-+--t
x
In de beeldscherm-schets geven de stippellijnen de kursor aan.
X en Y zijn de koordinaten die de kursor bepaalt; m en n definieren de deel-ruimte waarbinnen X en Y gelegen zijn.
De laatste referentiewaarden worden op het scherm afgedrukt.
Nadat beide keuzen gedaan zijn (we kiezen in het menu kategorie 'een') wordt het scherm als voIgt gevuld:
-3-Struktuur van de werkwijze
De schaakbord-benadering kan onderverdeeld worden in 1. het schaakbord als zodanig
2. een menu waaraan afspraken per menu-kategorie verbonden zijn; 3. invullingen van het schaakbord door middel van
a)getallen en/of letters (of kombinaties); of, b)arceringen;
4. een achtergrond-geheugen dat de manipulaties (na rekentechnische ver-werking) bijhoudt; en,
5. een referentiesysteem waardoor vaststaat op welke deelruimte binnen het schaakbord bepaalde manipulaties be trekking hebben.
Om dit te bereiken is zowel een rekenprogramma als een tekenprogramma nodig. Wat wij op het beeldscherm afgebeeld willen krijgen ziet er in algemene zin als voIgt uit:
1. beginstadium: omvang van het schaakbord wordt bepaald en tesamen met het menu weergegeven.
2. SCHAAKBORD: MENU: I 3. SCHAAKBORD: MENU:
4. de keuze van kategorie teent geplaatst in cel (3,3) wordt vervolgens in een achtergrond-geheugen geregistreerd.
5. tevens worden tegelijk de benodigde berekeningen verricht. Stel bijvoor-beeld dat de celwaarde van cel (3,3) 500 bedroeg en aan kategorie teen' een cumulerende waarde van 200 verbanden is, dan bedraagt na de keuzen 2 en 3 de waarde van eel (3,3) voortaan 700.
cel (3,3) hoeft overigens niet slechts een bijbehorende waarde te hebben; het kunnen er meerdere zijn, bijvoorbeeld in geval van een blok
de kombinatie lengte, breedte, hoogte, grondoppervlakte, inhoud en pla-fond oppervlakte; en
6. tens lotte willen we afdrukken van de bereikte resultaten hebben. Cit kan zowel op beeldseherm als op papier. Papier kan op zijn beurt zowel
printeruitvoer als hard copy's van hetgeen op het scherm op een bepaald moment staat, betekenen.
-4-Benodigde apparatuur en software
Om een resultaat te verkrijgen zoals dat hiervoor in de paragraaf 'Struk-tuur van de werkwijze' staat beschreven, hebben we - afgezien van de reken-automaat met regelprinter - een beeldschermterminal en een hard copy unit nodig.
Als beeldschermterminal richten we onze aandacht op een van de varianten van de beeldschermterminals van Tektron1x (vide Joosen augustus 1980).
V~~r de software maken we naast Algol (i.c. BEA
=
Burrough's Extented Algol) van het applikatiepakket GINO gebruik (CAD 1976; CAD April 1976; CAD Decem-ber 1976; CAD January 1979; CAD January 1980; Joosen SeptemDecem-ber 1980).Struktuur vanhet programma
Bet komputerprogramma kan opgedeeld worden in een aantal deelhandelingen die in principe overeenkomen met de stappen die in de paragraaf 'Struktuur van de werkwijze' staan aangegeven.
Dit betreft:
1. opgeven van de omvang van het schaakbord 2. opgeven van de omvang van het menu
3. tekenen van 1. en 2.
4. schrijven van tekst e.d. in het menu
S.
invullen van een (achtergrond)matrix met de waarden die aan de deel-ruimten (cellen) van het schaakbord toegekend worden6. uitschrijven (via een regelprinter) van de data uit S. 7. inschakelen van de kursor
8. plaatsen van de kursor in het schaakbord en vervolgens in het menu; dit kan een van te voren opgegeven aantal keer gebeureni na afloop van
8. is herhaling van 8. mogelijk
9. parallel aan 8, worden de aangewezen cellen met arceringen uit de menu-kategorieen lijst gevuld
10. parallel aan 8. wordt de (achtergrond) matrix van nieuwe (aangepaste) waarden voorzien (in het voorbeeld hie rna beperken we ons tot de toeken-ning van een waarde per cel)
11. uitschrijven (via een regelprinter) van de data uit 10.
Kijken we nu nog even naar de algemene struktuur van de GINO-toepassing, dan ziet dat er in een Algol-versie als voIgt voor toepassing op het THE-Reken-centrum (B 7700) uit:
BEGIN
$ INCLUDE "GINO/BEGIN on APPL"
IODEF (70,71,72); % resp. in-, uitvoer en fouten file T 4013; % variant Tektronix
%
%% opdrachten voor schrijven en/of rekenen
% %
WINDO 2(xl,x2= Xl,X2);% definiering van de 2-dimensionale
beeldscherm-% % ruimte
%
%
%% opdrachten voor schrijven, rekenen en/of tekenen
% %
DEVEND; % tekening is gereed; vrijmaken van de 'device'
$ INCLUDE "GINO/END ON APPL"
-5-Voorbeeld: een afdruk van het beeld op het beeldscherm
Op de volgende pagina's zijn een aantal afdrukken (hard copy's) van het beeld op het beeldscherm opgenomen. Deze geven een indruk wat er achter-eenvolgens gebeurt.
Gebruiksmogelijkheden in hetalgemeen
Het zal duidelijk zijn dat het niet weergegeven principe een ruime toe-passingsmogelijkheid kan vinden. Voorwaarde daarbij is dat het probleem
in kwestie uitdrukbaar is in een vierkant opdeelbaar in kleinere vierkant-jes en dat men deze kan invullen in wisselwerking met een standaardisatie in de vorm van een menu. In principe kan een dergelijk menu een grote serie routinehandelingen op zijn beurt representeren.
GEEF
T~EE ~AARDENOP.
N~LIJKRESP. HET AANTAL GRIDS UERTIKAAL EH
'81108'134
CANDE 38.124 (THE-RC) , YOIDMRE TEK86(SS)
.ENTER USERCODE PLEASE.
ZONTAAL •
• ENTER USERCODE PLEASE.
IT'S DAYTIME AT THE MOMENT
YOUR ACTUAL BALANCES AREs
.NO NEWS •
3#3
GEEF OP HET AANTAL MENUKATEGORIEEN'
• SESSION
HORIZONTAAL AANTAL GRIDS BEDRAAGT.
FAMILY DISK-USER3 OTHERWISE DISK
3
.FAMILY DISK - USER3 OTHERWISE DISK VERTIKAAL AANTAL GRIDS BEDRAAGT'
3
E GERARD/GINTONIC
*RUNNING 1044
.1044 DISPLAY:
GEEF TWEE WAARDEN OP.NAMELIJK RESP. M
*80T 1050 *GINO/RUNNER ON APPL
INIMUM X- EN MAXIMUM X-UAARDE
*?
EN TUEE UAARDEN RESP. MINIMUM Y- EN M
INDIEN TOESTEL 4013 TIK DAN IN 4013. AXIMUM Y-UAARDE.
ANDERS IN GEVAL VAN TEKTRONIX4014 4014.
4013
0,150,0.120
I
I
I
...
•
I
...
0•
Q~i
Q.Ig~
['-•
CkN
&~~
....
0•
Ckl-
N~~
•
&•
.... >
I-0([
Q..L~
U)•
an ....
&f~
...
t")..
•
•
0&
t-. t-. t-. t-. UJ t-.t-.t-.r-~
w
""
I
I
I
I
I
I
I
I
I
LITERATUUR:
CAD (1976): "GINO-F User Manual-Issue 2, the general purpose graphics package", CAD centre Cambridge
CAD (april 1976):"Ginograf User Manual-Issue
I",
CAD Centre CambridgeCAD (dec. 1976) : "GINO-F User Manual-Issue 2, Amendment No.3.
"
,
CAD Centre CambridgeCAD (Jan. 1979) :"GINQ-F User Manual-Issue 2, Amendment No.4. If I
CAD centre Cambridge
CAD (Jan. 1980) :"GINO-F User Manual-Issue 2, Amwndment No.5. "
,
CAD centre CambridgeJoosen(aug.1980):Computerfaciliteiten voor het werken met grafische gegevens", J.G.P.C. in THE-Rekencentrum-Informatie PP-6~
Joosen(sept.1980)"TBE Supplement-Ion the GINO-F user Manual Section IS" J.G.P.C. in THE-Be 30644a.
1
:1. t)\)O tl00 1200I~!gg
1500 16001
1700 1800 :1.9001
2000 2HH) 22001
::~300 :"2400 2500 2600I"
7()(' ;~100" ~~. \. 290(}1
3000 3100 32001
33 ()0 3400 3500 36001
... J '7"7 .,) (' J i., , 380() ~59001
4000 410042()0
430()1
. 4~!OO4:'O?
460()1
4700 4800 4900 50\)()1
'5100 ~52()O :5::~OO1
~5400 !,.'j~500 56001
;:5700 :5"800 ~590()1
6000 6100 .:);~OO 'i ".~ .')(',f'''' ,.
S INCLUDE "GINO/BEGIN
ON APPL
dBEGIN
FILE U T T2
(KINDc-::f;:EMO fE) ,U
rf
(IGND=F'R I NTEFn ;
ARRAY TEKST[1:6J;
REAL
XX,yy;INTEGER NRIJ,NKOL;
REAL Xl,X2,Yl,Y2;
INTEGER I.J,H,M?N; REAL X,Y;
INTEGER
MM,NN,CELX,CELY~[NTEGER IT,III,JJ,JJJ,JJJJ;
PROCEDURE
ARCER(I~XMIN,YMIN,XMAX,YMAX,STAP);INTEGEn
I~REAL XMIN,YMIN,XMAX,YMAX,STAP;
BEGIN
IF 1:::::1.THEN
BEGIN
MOVT02(XMINtSTAP,YMIN)~FOR H:=XMINtSTAP STEP STAP UNTIL XMAX-STAP DO
BEGIN
LINTD2
O-hYMAX) ;
H!=*+STAP; MOVT02(H,YMAX);
i..JNTrJ2(H,YMIN) ;
MOVT02(HtSTAP,YMIN);
EN!H
END
EL.SE
IF 1:::::2 THEN
BEGIN
MOVT02(XMIN,YMIN+STAP);
FOR H:= YMINtSTAP STEP STAP UNTIL YMAX-STAP DO
BEGIN
LINT02(XMAX,IH);
H:=*+STAP;
MOVT02(~MAX,H)' LINTO::~(XM IN
dO ;MOVT02(XMIN,HtSTAP)'
END?
END
EL.~3E IF I=:~THEN
BEGIN
MOVT02(XMIN,YMIN);·
LINT02(XMAX,YMAX);
MOVT02(XMIN,YMAX);
LINT02(XMAX,IYMIN);
END
[I...SE
n;'
1::::4THEN
BEGIN
INTEGEF~
HI-!, TEL
~MOVT02(XMIN,YMAX-STAP);
FOR H:=YMAX-STAP STEP STAP UNTIL YMIN+STAP DO
BEDIN
TEL:::::*+1;
LINT02(XMIN+TEL.*STAP,YMAX);
H::::::*-STfiP;
TEL:
::::*+:1.
~MOVT02(XMINtTEl*STAP,YMAX);
LINT02(XMIN,H);
MOVT02(XMIN,H-STAP)'
WRITE(UIT,{ "DATA PROC3", S(I3,Xl),
/),H,HH,TEL,XMIN,YMIN,XMAX,YMAX,I);
END;
1400 ,~i::,:jOO
'
bOO
"lOO (,800EL!:;E
BEGIN
CH(~MDD;
WRITECUIT,<-GEKOZEN
END?
ARCERING IS FOUTIEF.
U
» ;
1
900000
tOO
'r:!.()()
END PROCEDURE ARCER;
$
INCLUDE uGERARD/MMMM ON USER3." 102600-111600
IOnEF(?O,71.~'?2);
%RESP. INVOER,OUTPUT,ERRORFILES
1
30() 400 ';;:!:50 () i/)()O I!'OO ;800 "lflOO1
000tOO
82001
300 40() 8~5001
600'700
800 89001
000 100 92001
300 400 '~50() ... 600 I?O() ,800 99001
0000 0100 10200 _ 0300 0400 05()() :L06001
0700
()800
10l?OO1
1000 .11001120()
1
il.13()() L 1400 :1.15001
1.600 :1.700 . 180()11900
lit
2000It
21 O()1220()
12300II'
2400·~2:::jOO
126001
12700 12800 1290()1
BC[iIN
INTEGE1~ T{:}E;:~:)TEI..?Wfnn:: (FILE'71,
<uINDIEN TOES TEL 4013 TIK DAN IN 4013,",/,
"ANDERS IN GEVAl VAN TEKTRONIX40t4
4014+·»~READCFILE70,/,TOESTEL);
IF TOESTEL=4013 THEN T40t3 ELSE T4014.
ENIH
CI"h~MOD
;
WRITE(UIT2,{/,-GEEF TWEE WAARDEN OP, NAMELIJK",
/ ,
U
RESP. HET AANTAL GRIDS VERTIKAAL EN HORI-",
1,"ZONTAAL.n,/»;
READ(FILE70,I,II,JJ);
WRITE(UIT2,(II,"GEEF OP HET AANTAl MENUKATEGORIEEN:·,II»;
READ(FILE70,I,JJJJ);
BEGIN
ARRAY A,B,CCO:6J;
~MENU-PROC-WAARDEN
ARRAY PGEBC1:II,1:JJJ;
~PLANGEBIDE
ARRAY MENUWCO:JJJJJ;
WRITE(UIT2,{/,"HORIZONTAAl AANTAL GRIDS BEDRAAGT:·,
I4,1,·VERTIKAAL AANTAl GRIDS BEDRAAGT:",
I4,/>,I:r.,J..J);
WRITE(UIT2,{/,"GEEF TWEE WAARDEN OP,NAMELIJK .,
HRESP. MINIMUM X- EN MAXIMUM X-WAARDE
·,1
HEN TWEE WAARDEN RESP. MINIMUM Y- EN .,
"MAXIMUM Y-WAARDE.',/»;
READCFILE70,j,Xl,X2,Y1,Y2);
WRITECUIT,{"GELEZEN IS RESP.:H,X3,4(F6.1,
X1),/>,Xl,Yl,X2,Y2);
WRITECUIT2,<"GEEF NU DE WAARDEN DIE VOOR DE CElLEN GELDEN."
, /
,q
DOE DIT TElKENS NADAT DE CELREFERENTIE .,
I,
H
OP HET SCHERM VERSCHENEN
IS.",II»;
FOR 1:=1 STEP
1UNTIL II DO FOR J:=l STEP 1 UNTIL JJ DO
~EGIN
WRITECUIT2,{"CELC",I2,",·,I2,·)=·),I,J);
READ(FILE70,/,PGEBCI,JJ);
WRITECUIT,<I,"GELEZEN IS RESP.:",X2,F5.1,Xl,
"VOOR CEL:",X2,2(I2,Xl),II),PGEBCI ,JJ, I,J);
END;
WRITECUIT,(/,"ACHTERGRONDMATRIX BEVAT DE VOlGENDE .,
• WAAF..:DEN: • ,
/> ) ,
FOR 1:=1 STEP 1 UNTIL II DO
WFnTE(I.!IT,<*(F5.bXU:::·"JJ,FOR
J:=l STEP
1UNTIL
.,1,.1DO
PGEBCI
".J:]);WRITE(UIT,{II,"GEEF NU DE WAARDEN BEHORENDE BIJ HET MENU·
,".·,//»;
FOR
1:=1STEP
1UNTIL JJJJ DO
BEGIN
WRITE(UIT2,{"MENUKATEGORIE:u,Xl,I2,X2,·=-),I)P
READ(FIlE70,/,MENUW[IJ);
WRITE(UIT,(/,uGELEZEN IS.-,X2,F5.1,Xl,
"VOOR MENU KATEGORIEZ",Xl,I2), MENUWCIJ,I);
END;
WRITE(UIT,{II,"HET MENU BEVAT DE VOLGENDE WAARDEN:-,
":·,11»,
~3000
i
3tO () 3200 , 33()O 13400 ,.3500 J3600 :l3'?()() .• 3B()() 1.3900~.<H)O()
14100l4200
t4300 :t 4400 ,450() ,4600 :1.4700WRITE(UIT,{I2,X2,F5.1),I,MENUWCIJ);
WIND02(Xl,X2,Yl,Y2);
% MENU ARRAY VULLING
ACO:6J~ I IT: ::::,J,L.}! ==0,A[OJ!= III?
At':i.:t!=,LU; [-1[2]:=I I+JOO;
A C ,3:1 : :"~J . ..J+
1 00 ; AC4]~::::rI, A 1::3:J : ::::,),.1; A(6] : ::::0 ~ BrO]: ::::A[2J+l.0; BLl]:"=
ALL J; B[2]t== IH:O]+~~O, B[3J:=BC1JtJJJJ*tO;
8(4:1:=,-',J,..IJ;
i~MIN
X,; MIN
Y %Mf,-lX X ~,MAX
Y%RESP. AANTAL RIJEN EN AANTAL KOLOMMEN
(
4800 8[6J:::: 0; 4900 %
5000 ~(.
15:1.00
t
r~·?oo Ito) ho~5300 15400 fl5500 ~.5600 15700
~
.. 5800 :7;900 . bOOO 16:J.OO h.6200 h6300 16400 f650011
660016"700
11
6800 16900.l"700()
17100117200
It.
7300 17400~
75001"7600
l??OO j'?8001
17900 :t80()() IB:I.()O1
1.8200
:i.830018400
1
18500
.t
·g(~OO :18?OO :t8BOO1
:1. E~90() :1.9000 :l.910()1
19200 19:300t9400
.. or.··()OII.
7 ,~.I .CELX:= A[2J/AC5];
CELY
:=
AC3J/A[4J;
%BEELD SCHOONMAKEN
PICCLEj
"l '"~MENUCA,FILE72,1);
MENU(B,FILE72,1);
C(OJt="EEN
*.R;
ceo]
:=MTl,JEE*.·;
CCO:J:="DRIE*.· ;
MENUFL(B,FILE72,1,1,3,C);
MENUFL(B,FILE72,2,1,3,C);
MENUFL(B,FILE72,3,1,3,C);
.,
I.FOR
r:=l
STEP
1
UNTIL 3 DO
ARCER(r,B[OJ+15,B[~J-I*10~B[2J,
B[3J-(I-t)*10,CELX/8);
%
X=15,Y=20,X=30,Y=30
I:::::I0J
IF 1=1 THEN
FOR I:=1 STEP
1UNTIL 10 DO
BEGIN
REPLACE POINTER(CeO])
BY
STRING(I,3),- •• -;
ceo):=!; MENUFL(B,FILE72,1,I,1,C);
EN!H
CWWEF(C);
FOR 1:=1 STEP 1 UNTIL A[4J*AC5J DO
BEGIN
MOVT02(X2-10,Y2-5);
CHAMon,
WRITECUIT2,{" KURSOR NAAR eEL VAN UW KEUZE "
·OP HET SCHAAKBORn:
a» ,
cUI:O:t')m;: (.J,
XX,
'tY) ~MENUGTCA,FILE72,XX,YY,MM,NN);
CHAM(JfI;
WRITE(UIT,{2(I3,X3),"RESP. MM EN
NN.·,I>,
NN,MM);
MOVT02(X2-10,Y2-5);
CHAMOD;
WRITE(UIT2,("KURSOR NAAR KATEGORIE VAN UW·,
K
KEUZE IN HET MENU:-»;
CURS01~:
(
.J , X? Y) ;MENUGT(B,FILE72,X,Y,N,M);
CHAMOn;
WRITE(UIT,{2(I3,X3),"RESP. N EN M.",/),N,M);
IF MM=l THEN MM:=3 ELSE IF MM=3 THEN MM:=l;
'960()
1
9700 9800 (;')(100 200001
0100 O:.~O() 20:;)00 "'04001
0~:;()O
",-OflOO :;:.:0700I
OBOO 0900210()O
1
1100 ,1200I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
ARCER(N,A[OJ+(NN-l)*CELX,A[lJt(MM-l)*CELY,
A[OJ+(NN)*CELX,AC1J+(MM)*CELY, CELX/B);
%
UPDATING WAARDEN IN ACHTERGRONDSMATRIX
PGEBCNN,MMJ::
*
+
MENUWCMJP
END?
CH(~MOD v