KSEG Help
Inhoudsopgave:
Aan de slag
Introductie
Het selecteren
Construeren
Transformeren
Meten en berekenen
Bewerken en reconstrueren
Weergaven en het exporteren van afbeeldingen
Macro's
Aan de slag
Nadat je de volgende stappen hebt gevolgd, beheers je waarschijnlijk de basisvaardigheden
om KSEG te kunnen gebruiken. Je kan daarna zelfstandig verder spelen met het programma.
Om meer geavanceerde mogelijkheden te ontdekken moet je eigenlijk de hele documentatie doorlezen.
- Start KSEG. Je ziet een wit vlak omringd door werkbalken, scrollbalken, menu en een
statusbalk.
- Om een punt A te construeren, druk met de rechtermuisknop op het witte tekenvlak waar
je het punt wil hebben.
- Houd SHIFT ingedrukt terwijl je ergens anders een nieuw punt B construeert. Punt A is dan
nog steeds geselecteerd omdat je SHIFT ingedrukt hield. Punt A en B zijn dus nu beide geselecteerd.
- Kies "Nieuw/Cirkel door middelpunt en punt" uit het menu. Dit construeert een cirkel
met middelpunt A en gaat door punt B. De cirkel wordt automatisch geselecteerd, punt A en B
worden echter gedeselecteerd.
- Selecteer punt B door er met de linkermuisknop op te klikken (dit zal de cirkel deselecteren).
Houd daarna SHIFT ingedrukt om daarna ook punt A te selecteren.
- Kies weer "Nieuw/Cirkel door middelpunt en punt" uit het menu. Nu zal er een cirkel
geconstrueerd worden met middelpunt B (je selecteerde die tenslotte het eerste) en door A gaat.
- Houd SHIFT ingedrukt en selecteer de eerste cirkel door er op te klikken. Beide cirkels
zijn nu geselecteerd.
- Kies "Nieuw/Snijpunten" uit het menu. KSEG construeert nu twee punten waar de cirkels elkaar
snijden. De punten zijn allebei geselecteerd.
- Kies daarna uit het menu "Nieuw/Lijn" zodat er een middelloodlijn is geconstrueerd van A en B.
- Als je nu punt A versleept met de linkermuisknop, krijg je al een aardig idee van wat KSEG
eigenlijk doet.
Natuurlijk is dit niet de beste manier om een middelloodlijn te construeren met KSEG,
maar het is puur om te laten zien hoe het construeren en selecteren van objecten
te werk gaat.
Terug naar boven
Introductie
KSEG is een hulpmiddel dat ontworpen is om gemakkelijk bepaalde geometrische
eigenschappen te bekijken en te verkennen. Bijna iedere keer wanneer ik
er voor ga zitten om met KSEG te spelen, ontdek ik een nieuwe eigenschap die ik
nog niet eerder wist.
Met KSEG is het mogelijk om een dynamische constructie te maken door een aantal
punten te maken om ze vervolgens te gebruiken voor de constructie van andere
objecten, zoals lijnen en cirkels. Je kan vervolgens de punten verslepen om te
zien hoe de totale constructie daarop reageert. KSEG biedt natuurlijk veel meer,
maar dit is het belangrijkste idee achter het programma.
Ik gebruik het ook om geometrische diagrammen te maken in hoge kwaliteit om het in LaTeX
te gebruiken. Ik denk dat het de makkelijkste manier is om het KSEG af te laten drukken
in een .ps-bestand, het om te zetten in EPS, bijwerken in XFIG en vervolgens exporteren
naar het PS/LaTeX formaat.
Geometrische objecten
Punten, lijnen, metingen, berekeningen, loci, enz. zijn allemaal "geometrische
objecten". Een geometrisch object kan afhankelijk zijn van andere objecten.
Als je bijvoorbeeld twee punten construeert om ze vervolgens met een lijn te verbinden,
dan is de lijn afhankelijk van de punten. Wanneer je een punt versleept, zullen alle objecten
die van dat punt afhangen opnieuw berekend en getekend worden. Wanneer je een afhankelijk
object versleept, zal een geavanceerd algoritme bepalen welke objecten ook verplaatst moeten
worden om zo de gewenste beweging te krijgen.
Een geometrisch object hoeft niet noodzakelijk te "bestaan", in geometrisch perspectief gezien.
Zoals je misschien in de introductie zag, hoeven de snijpunten van twee cirkels niet altijd te
bestaan, namelijk in het geval dat de cirkels elkaar niet snijden. Wanneer je ze weer dichter
op elkaar schuift zul je de punten ook weer in beeld zien. Objecten die van zulk type objecten
afhangen zullen dan ook verdwijnen (met uitzondering van een locus, voor meer informatie hierover
staat verder in dit document). Dus maak je niet druk als ineens een groot deel van je
constructie verdwijnt na het verplaatsen van een object, want als je het weer terugsleept zal alles
terug in beeld komen.
Terug naar boven
Het selecteren
Om nieuwe objecten te kunnen construeren, moet je normaal gesproken enkele bestaande
objecten selecteren. Hiervoor gelden de volgende regels:
- Klik met de linker muisknop op een lege plek om alle huidig geselecteerde objecten
te deselecteren.
- Klikken met de linker muisknop op een ongeselecteerd object zal dat object
selecteren en al het andere deselecteren.
- Het slepen van de muis vanuit een lege plek vormt een vierhoek. Alle objecten in
dat vierhoek zullen dan geselecteerd worden en de rest wordt gedeselecteerd.
- Het indrukken van SHIFT en klikken met de linker muisknop op een object zal het object
selecteren indien het ongeselecteerd is en omgekeerd. Andere geselecteerde objecten
behouden hun selectie.
- Bij het slepen met SHIFT ingedrukt zullen de reeds geselecteerde objecten geselecteerd
blijven.
- In een macro is het ook mogelijk om objecten te selecteren met behulp van de lijst die je
rechts in beeld ziet. Hierbij gelden dezelfde regels als in het gewone tekenveld.
Wanneer je op een plek klikt waar zich meer dan 1 object bevindt, wordt het
allemaal wat moeilijker (voor KSEG in ieder geval, want voor de gebruiker zou het duidelijk
moeten zijn). Objecten hebben een selectievolgorde: eerst de punten, dan de bogen, tekst
en loci en tenslotte de gevulde objecten.
Als er objecten zijn met een hogere rang aangewezen worden, worden objecten met
een lagere rang genegeerd. Als er objecten van dezelfde rang op elkaar liggen,
kan je door er meerdere malen op te klikken de selectiemogelijkheden bekijken.
De statusbalk is een goede plaats om te zien wat er gebeurt als je een object zal aanklikken.
Selectiegroepen
Een selectiegroep is een krachtigere manier om meerdere objecten te selecteren.
Je vertelt KSEG dat je een aantal objecten wil groeperen om vervolgens de selectie met die
objecten eenvoudiger te maken.
Wanneer je naar "Bewerken/Selecteer groepen" gaat, krijg je het selectievenster te zien (gekoppeld
aan een document). Hier zie je een lijst met alle selectiegroepen die je op
het moment voor dit document beschikbaar hebt, met daarbij de ingebouwde selectiegroepen.
De laatste zijn gemarkeerd met een sterretje, er is voor ieder type object een groep
dat alle objecten van dat type selecteert.
Wanneer je een selectiegroep selecteert (of meerdere) in de lijst, en vervolgens
klikt op "Selecteer", zullen alle objecten van dat type geselecteerd worden. De
rest wordt gedeselecteerd. "Deselecteer" zal alle objecten van het geselecteerde
type in de lijst deselecteren. Indien je meer dan één object geselecteerd
hebt zal de "Nieuwe groep"-knop geactiveerd zijn. Als je dit selecteert zal er een
nieuwe selectiegroep aangemaakt worden van de geselecteerde objecten.
Ingebouwde selectiegroepen kunnen niet verwijderd worden.
Het vinkje bij "(De)selecteer onzichtbare objecten" heeft alleen invloed op
de ingebouwde selectiegroepen. Wanneer het vakje leeg is (standaard), zal de
selectiegroep "Alle punten" alleen de zichtbare punten selecteren. Wanneer
dat vakje aangevinkt is, zal het ook de verborgen punten selecteren.
Niet-ingebouwde selectiegroepen (de)selecteren alle objecten die ze bevatten,
inclusief de verborgen objecten.
Een (niet-ingebouwde) groep kan leeg raken als alle objecten verwijderd worden
(bijv. Ongedaan maken"). Deze groepen worden gemarkeerd met een minteken, maar
worden niet automatisch verwijderd (omdat Ongedaan maken/Opnieuw de verwijderde
objecten weer nieuw leven kunnen inblazen). Maar houd er rekening mee dat lege groepen niet worden bewaard
in het document.
Terug naar boven
Construeren
Wanneer er nieuwe objecten worden geconstrueerd, zijn ze meteen geselecteerd en alle
andere objecten worden gedeselecteerd. Uitgezonderd is dat een punt werd geconstrueerd
met de SHIFT-knop ingedrukt.
Punten
- Om een vrijstaand punt te construeren, klik met de rechtermuisknop op
een lege plek in het tekenveld.
- Om een punt te construeren op een lijn, lijnstuk, een halve lijn, cirkel, boog, enz.,
druk met de rechtermuisknop op dat object waar je het punt wil hebben.
- Om een punt te tekenen op een snijpunt, klik met de rechtermuisknop op
dat snijpunt. Een andere manier is dat je de twee snijdende objecten selecteert
en vervolgens "Nieuw/Snijpunt" selecteert. Wanneer er twee snijpunten nodig
zijn (bijv. een cirkel en een lijn), zal de menu-optie alle twee de snijpunten
construeren, terwijl het rechtsklikken maar één snijpunt construeert.
- Om het middenpunt te construeren van één of meerdere lijnstukken, selecteer
deze en kies in het menu voor "Nieuw/Midden(s)".
Daarnaast zijn er nog twee andere soorten punten: eindpunten en middelpunten.
Deze zijn vooral bruikbaar bij het maken van Macro's. Als je bijvoorbeeld
een lijnstuk hebt maar geen eindpunten of een cirkel zonder middelpunt.
Om een eindpunt(en) te construeren van een lijnstuk, halve lijn of een boog,
selecteer "Nieuw/Eindpunten". Om een middelpunt te construeren van een cirkel of boog,
kies dan "Nieuw/Middelpunt".
Lijnstukken
Er is maar één manier om een lijnstuk te maken: selecteer twee of meer
punten en kies "Nieuw/Lijnstuk(ken)". Wanneer er twee punten geselecteerd
zijn zal er maar één lijnstuk geconstrueerd worden. Wanneer n
> 2 punten geselecteerd zijn, dan zullen er n lijnstukken
geconstrueerd worden.
Halve lijnen
- Om een halve lijn te construeren van een punt naar een ander, selecteer
je de twee punten (in de juiste volgorde) en ga dan naar "Nieuw/Halve lijn".
Selecteer meer dan twee punten om meerdere halve lijnen te construeren.
- Om een bisectrice te construeren van een bepaalde hoek, selecteer
drie punten die de hoek definiëren (de hoek zelf als tweede selecteren) en
ga naar "Nieuw/Bisectrice". The bisectice deelt altijd de scherpe zijde van een
hoek.
Lijnen
- Om een lijn te construeren, selecteer twee of meerdere punten en ga naar
"Nieuw/Lijn(en)".
- Om een evenwijdige lijn te tekenen, selecteer de lijn en het punt waar die doorheen
moet. Het is ook mogelijk om hem evenwijdig te laten lopen aan een lijnstuk of een halve lijn.
Wanneer deze geselecteerd zijn ga je naar "Nieuw/Evenwijdige lijn". Je kan meerdere punten
selecteren of meerdere rechte objecten (maar niet allebei).
- Om een loodlijn te construeren, selecteer zoals beschreven bij de evenwijdige lijn,
alleen kies je dan "Nieuw/Loodlijn(en)".
Cirkels
- Om een cirkel te construeren met een gegeven middelpunt en een punt, selecteer
je eerst het midden en dan het punt waar de cirkel doorheen moet gaan en ga naar
"Nieuw/Cirkel met middelpunt en door punt".
- Om een cirkel te construeren met een gegeven middelpunt en de straal, selecteer
het midden en dan het lijnstuk die de lengte van de straal representateert en ga
vervolgens naar "Nieuw/Cirkel met middelpunt en straal".
Bogen
De enige manier om een boog te construeren is het selecteren van drie punten
en vervolgens naar "Nieuw/Boog door drie punten" te gaan.
Loci
Een locus is een geometrisch object dat de baan van een ander geometrisch object representateert
(het gereden object) wanneer een ander punt op een lijn of boog beweegt (de bestuurder).
Om een locus te construeren, selecteer je het punt dat op een lijn of boog ligt en dan
het afhankelijke punt waarvan je de baan wil tekenen. Het gereden object kan een punt,
een lijn of boog of zelfs een andere locus zijn (maar dit maakt het hele proces erg traag).
Een locus kan bestaan als het gereden object niet bestaat, omdat het object kàn bestaan
wanneer de bestuurder zich in een andere positie bevindt.
Op deze manier kan je bijvoorbeeld een parabool construeren:
Je hebt een punt V op een lijn l dat zich vrij kan bewegen op deze lijn (de bestuurder).
Daarnaast is er nog een vrij punt F dat het brandpunt is van deze parabool.
Construeer lijn FV en teken de middelloodlijn van dat lijnstuk. Construeer ook
een loodlijn door de lijn l en punt V. Het snijpunt P van de zojuist geconstrueerde
loodlijnen is het gereden object. Wanneer je V over de lijn sleept, zie je dat V
de baan van een parabool aflegt. Om deze parabool te tekenen, selecteer je eerst V en dan P
en ga je naar "Nieuw/Locus".
Omdat een locus een oneindige reeks van geometrische objecten is, kan KSEG
het niet volledig nauwkeurig berekenen en tekenen. Daarom benadert KSEG de
locus. Door te dubbelklikken op de locus kan je de nauwkeurigheid veranderen door de waarde
te verhogen of door "Bewerken/Verander aantal samples".
Het is een speciaal geval als het gereden object een punt is. In dit geval zal KSEG
automatisch de punten verbinden en een alternatief algoritme inzetten die tracht
de locus vloeiend en nauwkeurig te tekenen. Het aantal samples hoeft dan niet altijd
te gelden, het algoritme kan zelf bepalen wanneer een locus goed genoeg is en stoppen.
Dit algoritme geeft veel beter uitziende loci vergeleken met andere programma's die ongeveer
hetzelfde doen als KSEG.
Gevulde objecten
- Om een polygoon te maken, selecteer drie of meerdere punten en kies
"Nieuw/Polygoon".
- Om een booggebied te maken, selecteer een boog en kies "Nieuw/Booggebied".
Om een boogstuk te maken, selecteer een boog en kies "Nieuw/Boogstuk".
- Om een binnenste van een cirkel te maken, selecteer een cirkel en kies
"Nieuw/Cirkelvulling".
Terug naar boven
Transformeren
KSEG maakt het mogelijk om bepaalde translaties uit te voeren op geometrische
objecten. De algemene wijze van handeling is het kiezen van enkele objecten
en vervolgens een translatie kiezen uit het Translatie-menu. Dan kies je
een ander object en voert de translatie uit, ook d.m.v. het Translatie-menu.
Nieuwe objecten worden aangemaakt volgens de translatie. Hier zijn de details:
Het kiezen:
- Om een vector te maken, kies twee punten en ga naar "Translatie/Vector maken".
De vector zal lopen van het eerste geselecteerde punt naar het tweede.
- Om een spiegel te maken, selecteer een lijn(stuk) of een halve lijn en ga naar
"Translatie/Spiegel maken".
- Om een middelpunt te maken, selecteer een punt en ga naar "Translatie/Middelpunt maken".
- Om een hoek te definiëren, selecteer drie punten of één hoekmeting
en ga naar "Translatie/Hoek definiëren".
- Om een verhouding te definiëren, selecteer twee lijnstukken of één
meting en ga naar "Transleer/Verhouding definiëren".
De objecten worden gemarkeerd met een geelgekleurd object om te laten zien
wat een bepaalde translatie uit zal voeren. Als je deze markeringen weg wil hebben
(bijv. voor screenshots) ga naar "Translatie/Wis aangemaakte hulpstukken". Deze
objecten worden niet afgedrukt.
- Om objecten te transleren, heb je een vector nodig.
- Om objecten te reflecteren, heb je een spiegel nodig.
- Om objecten te schalen, heb je een middelpunt en een verhouding nodig.
- Om objecten te roteren, heb je een middelpunt en een hoek nodig.
Omdat je bij het definiëren van een hoek of verhouding een meting of berekening
aan kan klikken, is het mogelijk om constructies te maken die onmogelijk zijn
met een passer of liniaal. Je moet hierbij wat voorzichtig zijn, maar het kan
ook leuk zijn. Het coord.seg-bestand laat bijvoorbeeld zien hoe je met KSEG
parametrische krommen kan maken als loci.
Terug naar boven
Meten en berekenen
Je kan bepaalde geometrische grootheden meten met KSEG en er berekeningen
mee uitvoeren. De afstands-eenheden zijn in pixels en de hoeken gegeven
in graden. Je kan het volgende meten:
- Om de afstand te meten tussen een punt en een lijn(stuk) of een ander punt,
selecteer de twee objecten en ga naar "Meting/Afstand".
- Om de lengte van een lijnstuk te meten, selecteer het en kies
"Meting/Lengte".
- Om de omtrek te meten van een cirkel, selecteer de cirkel en ga naar
"Meting/Omtrek".
- Om de booglengte van een boog te meten, selecteer de boog en ga naar
"Meting/Booglengte".
- Om de straal van een boog of cirkel te meten, selecteer het object
en ga naar "Meting/Straal".
- Om een hoek te meten gedefinieerd door drie punten, selecteer de
drie punten en ga naar "Meting/Hoek".
- Om de verhouding te meten tussen twee lengstes van twee lijnstukken,
selecteer ze en ga naar "Meting/Verhouding".
- Om de helling te meten van een lijn(stuk) of halve lijn, selecteer
het object en ga naar "Meting/Helling".
- Om de oppervlakte te berekenen van een gevuld object, selecteer
de polygoon, boogstuk, booggebied of cirkelvulling en ga naar
"Meting/Oppervlakte". Wanneer de polygoon niet goed is (de zijden vormen
geen gesloten vorm), zal het gemeten gebied niet gelijk zijn aan het
gebied dat je op het scherm ziet.
Het is mogelijk om meerdere metingen te combineren in een berekening. Om een berekening
te maken, ga naar "Meting/Bereken..." of dubbelklik op een bestaande meting.
Wanneer je de menu-optie kiest, is de berekening leeg. Wanneer je dubbelklikt, zal de
betreffende meting automatisch in de berekening opgenomen worden. In beide gevallen
zal het rekenscherm in beeld komen waar je een formule kan opstellen. Wanneer
je dubbelklikt op een berekening, is het mogelijk om die te bewerken.
De functie "Ongedaan maken" in de formule editor staat compleet los
van de "Ongedaan maken"-functie in de rest van KSEG. Wanneer het rekenvenster
gesloten wordt zijn alle stappen in het rekenvenster verloren gegaan.
Binnenin de berekening kan je nummers en functies invoeren. De werkbalk
biedt verschillende bewerkingen. De volgende functies kunnen ook
handmatig getypt worden:
sqrt, log, exp, floor, ceil, fabs, sin, cos, tan, sinh, cosh, tanh,
asin, acos, atan, asinh, acosh, atanh
Let er op dat de bovenstaande functies werken in radialen, in tegenstelling
tot de metingen en translaties die in graden weergeven worden. Ik weet het,
het is niet geweldig, maar de enige manier om dit te verhelpen is om ondersteuning
toe te voegen van eenheden.
Tenslotte kan je ook metingen aanklikken in het KSEG-venster wanneer het rekenvenster
nog open is. Je kan niet op een berekening klikken die je op dat moment al aan
het berekenen bent.
Ik moet zeggen dat dit het gedeelte is van KSEG waar ik het minst tevreden
over ben. Er is geen ondersteuning voor fatsoenlijke eenheden en de berekeningen
zijn nogal onhandig. Daarnaast is de formule-code 'lelijk' en langzaam (en bevat
nog bugs ook).
Terug naar boven
Bewerken en reconstrueren
Opmaak van objecten en labels
Je kan opgeven hoe je een bepaald object wil laten tekenen door het te selecteren
om vervolgens naar "Bewerken/Kleur", "Bewerken/Lijntype", "Bewerken/Puntdikte" of
"Bewerken/Lettertype" te selecteren. Wanneer je naar een van deze menu's
gaat zonder een object te selecteren, kan je de standaardinstellingen van
de opmaak veranderen. Deze eigenschappen vind je niet in de werkbalken, maar je kan
ze toch altijd in het scherm hebben door bij het betreffende menu op de gestippelde
streep te klikken. Het menu wordt losgekoppeld en is nu altijd in beeld.
Punten en verscheidene lijnen hebben labels die weergeven kunnen worden (ze
zijn standaard verborgen). Je kan ze tevoorschijn halen door "Bewerken/Laat labels zien".
Ze kunnen bewerkt worden door op zo'n label te klikken en dan naar
"Bewerken/Bewerk label" of door op het betreffende label te dubbelklikken.
Het is ook mogelijk om labels sub- en superscripten te geven als je dat weet uit te
vinden :-) Je kan de labels verslepen ten opzichte van het object waar ze naar
verwijzen.
Reconstrueren
Niets is zo frustrerend wanneer je een half uur hebt besteed aan een geavanceerde
constructie en er dan pas achter komen dat je in het begin een klein foutje
hebt gemaakt. KSEG's reconstructie-mechanisme maakt het mogelijk om dit soort
dingen makkelijk te laten repareren.
Om een punt te reconstrueren, houd CTRL ingedrukt, en sleep met de linkermuisknop
het punt naar een ander object waar je het eigenlijk wilde hebben.
Voorbeeld: Stel je wil bij een driehoek ABC een punt binnen de driehoek vinden
waar een hele lange constructie voor nodig is. Maar nu wil je ook onderzoeken hoe
zo'n punt werkt als de driehoek gelijkbenig is (AB=BC). Je kan dit onderzoeken zonder
de hele constructie opnieuw uit te voeren. Teken twee cirkels met middelpunt A door B en
met middelpunt B door A. Vervolgens houdt je CTRL ingedrukt en sleep C naar het snijpunt
van de cirkels en laat de muisknop los. Nu ligt C op het snijpunt.
Dus:
- Het indrukken van CTRL tijdens het slepen maakt het punt vrij.
- Het punt op een lege plek plaatsen laat het punt vrij.
- Het punt op een lijn(stuk) of boog slepen zorgt er voor dat
het punt daadwerkelijk daarop ligt.
- Het punt naar een ander punt slepen zal de twee punten samenvoegen.
Alle afhankelijke objecten worden omgezet naar het punt waarnaar je gesleept hebt,
het andere punt wordt (intern) vernietigd.
Dit is natuurlijk allemaal ongedaan te maken door CTRL+Z te drukken of "Bewerken/Ongedaan maken".
De statusbalk onderaan het scherm doet zijn best om je zo goed mogelijk
te informeren wat er zal gebeuren als je een punt ergens naar toe
zal slepen.
Soms laat KSEG niet elke reconstructie toe. Je kan bijvoorbeeld een punt
niet verslepen op objecten die afhankelijk van dat punt zijn. Ook kan je geen
punt slepen op een locus waarvan dat punt de 'bestuurder' is. Daarnaast
zijn er nog complexe regels bij het maken van macro's, om te voorkomen dat
je macro onmogelijk wordt. Je kan bijvoorbeeld een gegeven punt niet naar
een definitief punt slepen. Indien je het toch voor elkaar krijgt om een onmogelijke
constructie te maken, laat het dan weten.
Terug naar boven
Weergaven en het exporteren van afbeeldingen
Weergaven schuiven en zoomen
Om een beter beeld te krijgen van je constructie, maakt KSEG het mogelijk
om in- en uit te zoomen en door de constructie te schuiven. Om te zoomen,
ga naar "Beeld/Zoomen". The muiscursor verandert in een vergrootglas (indien je
je op het tekengebied bevindt). Houd de linkermuisknop ingedrukt en sleep
naar boven of beneden om resp. in of uit te zoomen. Je zoomt in op het punt
waar je de muisknop hebt ingedrukt. Wanneer je loslaat, verandert de cursor
weer in een normale pijl. De huidige vergroting wordt altijd weergeven in
de statusbalk. Ondanks het feit dat je inzoomt, blijven punten, lijndikte en
lettertypes op dezelfde grootte. Het schuiven werkt ongeveer hetzelfde als zoomen.
Houd de muis ingedrukt en sleep het veld. Je kan ook slepen door met de middelste
muisknop te slepen.
Als je naar "Beeld/Passend inzoomen" gaat, zal KSEG het beeld automatisch
zodanig aanpassen, dat de constructie precies in beeld past. Als je
kiest voor "Beeld/Oorspronkelijk zoomniveau (100%)", zal KSEG de vergroting
weer 100% worden en wordt het beeld naar de oorsprong verschoven.
Meerdere weergaven
Om een nieuw beeld te maken van je huidige constructie (in een nieuw venster), ga naar
"Beeld/Nieuw beeld". Er verschijnt een nieuw venster. Schuiven en zoomen
zal andere weergaven niet beïnvloeden, maar veranderingen aanbrengen
in het document of het selecteren van objecten worden in alle weergaven
doorgevoerd. Als je dus bijvoorbeeld een punt versleept in een beeld,
zie je het ook in alle andere weergaven verschuiven.
Exporteren van afbeeldingen
Je kan de inhoud van de huidige weergave exporteren naar een grafisch
bestand (in enkele veel gebruikte formaten). Om dit te doen, ga naar
"Beeld/Exporteren naar afbeelding". Een venster komt tevoorschijn om het
bestandsformaat te kiezen en eventueel de mogelijkheid om op hogere kwaliteit
op te slaan. Klik op OK en kies het bestand dat je kan opgeven in het
dialoogvenster. Het formaat van de afbeelding is hetzelfde als
het formaat van de huidige weergave.
Als je voor "Hoge kwaliteit" kiest, zal KSEG meer tijd nemen om te exporteren,
maar het plaatje wordt ontkarteld en getekend met subpixel-precisie. Deze
optie is geweldig voor het maken van web-graphics, maar kan verschrikkelijk
lelijke resultaten opleveren wanneer je het afdrukt. Ook moet deze optie
niet gebruiken als je het omzet naar een zwart-wit plaate (maar grijswaarden
kunnen wel). De normale kwaliteits-modues is veiliger omdat het geëporteerde
plaatje exact is aan de afbeelding op het scherm.
Terug naar boven
Macro's
Het maken van macro's is misschien wel het meest krachtige onderdeel
van KSEG. Een macro lijkt op een gewone KSEG-tekening, alleen kan de
constructie opnieuw afgespeeld worden in een andere tekening of macro.
Om te beginnen een eenvoudig voorbeeld:
Stap voor stap voorbeeld: Omgeschreven cirkel
Dit voorbeeld zal je begeleiden bij het maken van een cirkel door drie gegeven punten.
Zie ook circumcircle.sec in de examples-map van de KSEG-tarball.
- Maak een nieuwe macro met "Bestand/Nieuwe macro".
- Construeer drie punten A, B en C. Deze punten representateren
de punten die gegeven worden aan de macro.
- Selecteer A, B en C en markeer ze als gegeven door naar
"Macro/Markeer als gegeven". Dit laat KSEG weten dat deze punten
gegeven moeten zijn wanneer de macro later afgespeeld zal worden.
- Construeer de lijnstukken AB en BC met hun middelpunten D en E.
- Construeer een loodrechte lijn op AB door D en een loodrechte lijn
op BC door E. Construeer vervolgens het punt F op het snijpunt van de twee
loodlijnen.
- Construeer nu een cirkel met middelpunt F en die door punt A gaat.
Dit is de cirkel zoals we die willen hebben.
- Selecteer nu alle objecten behalve de cirkel en de drie gegeven punten A, B en C.
Ga naar "Bewerken/Verberg objecten" om de geselecteerde objecten te verbergen.
Dit is omdat we bij het afspelen niet willen hebben dat het scherm vol extra lijnen
komt te zitten, we willen enkel dat de cirkel in beeld zal komen.
- Dat was het! Test de macro door een nieuwe tekening te openen ("Bestand/Nieuwe tekening"),
en door drie vrije punten te tekenen. Ga naar "Speel af/Naamloos" (er van uitgaande dat
je macro niet opgeslagen is). De omgescreven cirkel zal plotseling op het scherm
verschijnen!
Niet-recursieve macro's
De grootste kracht van macro's is te danken aan het feit dat ze
recursief kunnen zijn. Niet-recursieve macro's zijn daarom erg eenvoudig. Het
voorbeeld hierboven omvat ongeveer alle aspecten van zo'n macro. Hier
volgen nog enkele details (die ook van toepassing zijn bij recursieve
macro's):
- Afhankelijke objecten kunnen ook gemarkeerd worden als gegeven. In dit
geval is het verstandig om de objecten waarvan ze afhankelijk zijn niet
te construeren als ze nergens voor nodig zijn. Deze objecten worden weergeven
met "ongeconstrueerd".
Technisch gesproken wordt de volgende regel gehanteerd. Daarbij moet je de
afhankelijke en onafhankelijke objecten eigenlijk in een stamboom-structuur kunnen zien. Afhankelijke
objecten (kinderen) staan onder het onafhankelijke object (ouder). Wanneer van een
object A minstens één kind-object als gegeven is markeerd, is object
A niet geconstrueerd.
- Het is niet toegestaan om objecten die een locus definiëren als
gegeven te markeren. Je kan bijvoorbeeld 'de bestuurder' niet als gegeven
markeren omdat KSEG niet kan nagaan dat het punt inderdaad op een lijn
ligt wanneer het afgespeeld wordt.
- Het is toegestaan om in een normale tekening een ander object als gegeven
object te laten dienen dan in de macro is gedefinieerd. Bijvoorbeeld,
wanneer je in een constructie een lijnstuk S markeert als gegeven en daarop
een punt construeert, en vervolgens in een ander document een boog, cirkel, halve lijn,
of lijn selecteert om als gegeven object te dienen, zal het punt daar
alsnog op geconstrueerd worden. Behalve als er een loodlijn wordt geconstrueerd
door het punt en de lijn waar het op ligt, dan zal de constructie niet uitgevoerd worden
als het gaat om een cirkel of boog.
Het algoritme dat de verschillende types vergelijkt (de geselecteerde van de constructie
en de gegeven uit de macro) is vrij complex. Het eerste wat wordt geprobeerd is de
selectievolgorde uit de macro overeen te laten komen met de selectievolgorde uit je
huidige constructie. Als dat niet werkt, gaat KSEG zoeken naar de juiste objecten.
Het kan gebeuren dat op deze manier bepaalde situaties niet worden toegelaten. Je moet
dan de objecten in een andere volgorde selecteren, het liefst zo dicht mogelijk aan
de volgorde die in de macro gehanteerd wordt.
- Vrije punten, metingen en berekeningen die niet als gegeven gemarkeerd zijn
worden op een willekeurige plek geplaatst. Punten die op een lijn geplaatst worden,
worden willekeurig geplaatst op die lijn bij het uitvoeren.
- Het Speel Af-menu is een handige manier om veelgebruikte macro's vlug
uit te voeren. Selecteer de map waar deze macro's in staan in het dialoogvenster
dat tevoorschijn komt wanneer je "Speel Af/Speel Af/Wijzig map". De macro's worden
nu in het menu ingeladen, en worden automatisch geactiveerd wanneer de juiste objecten
geselecteerd zijn.
- Kopieer als macro zet een gewone constructie om in een macro-document.
Dit is handig wanneer je tijdens een constructie er achter komt dat je een
bepaalde handeling vaker wil uitvoeren. Je kan dan naar "Bestand/Kopieer als macro"
gaan. Verwijder de onnodige objecten en markeer de nodige objecten als gegeven.
Recursieve macro's
De leukste manier om macro's te gebruiken is om ze automatisch te laten herhalen.
Dit maakt het mogelijk om fractals te maken, maar ook om bepaalde macro's
meerdere keren uit te voeren. Voor een eenvoudig voorbeeld verwijs ik
naar tractix.sec, voor een meer geavanceerde macro verwijs ik naar
dragon.sec (maakt een drakenfractal).
Een macro kan herhaald worden door er een lus van 'objecten' in te stoppen (het
zijn in werkelijkheid geen geometrische objecten, maar doen alsof).
Om een lus te maken, selecteer enkele objecten die overeenkomen met
de gegeven objecten en ga naar "Macro/Herhaal". Een lus vertelt KSEG
dat de constructie herhaald moet worden nadat het is uitgevoerd, waarbij
de resulterende objecten doorgegeven worden als gegeven objecten. Dit kan
oneindig doorgaan, maar om dat te voorkomen vraagt KSEG van tevoren hoe
vaak de herhaling uitgevoerd moet worden. Wees echter voorzichtig, als je meer
dan één lus hebt in een macro, zal het aantal objecten dat KSEG aanmaakt
exponentieel toenemen. In andere woorden, houd het aantal herhalingen zo laag
mogelijk. Op mijn oude 350 MHz-systeem, kan KSEG zo'n 100000 objecten normaal
afhandelen. Dit zal waarschijnlijk genoeg voor iedere toepassing die je maar
kan bedenken.
Houd er rekening mee dat wanneer je een lus in een macro aanbrengt,
de gegeven objecten vast staan (je kan geen nieuwe objecten meer markeren
als gegeven, gegeven objecten kunnen niet meer normale objecten worden en
het verwijderen van een gegeven object verwijdert de lus). Dit is allemaal
om te voorkomen dat een lus ongeldig is. Om de gegeven objecten toch te kunnen
wijzigen moet de lus eerst verwijderd worden.
Je kan objecten in een recursieve macro als "Definitief" of als "Initieel" markeren.
Definitieve objecten zijn vanzelfsprekend: ze worden alleen geconstrueerd
op de maximale recursieve diepte. Dit is gemakkelijk voor veel toepassingen,
vooral voor fractals die alleen het hoogste detailniveau laten zien (zie dragon.sec
of sierp2.sec). Kind-objecten van definitieve objecten worden ook gemarkeerd
als "(Definitief)" in de lijst.
Initiële objecten zijn complex. Het is niet zo verschrikkelijk krachtig,
maar het geeft genoeg vreemde effecten om het erg moeilijk te maken om
het te kunnen volgen. Een initieel object wordt maar één keer
geconstrueerd (op het hoogste niveau van de recursie-diepte). Alle kind-objecten
van een initieel object worden automatisch met "(initieel)" gemarkeerd in de lijst.
Om een goed beeld van een initieel object te krijgen moet je eens kijken
naar sierp.sec. Speel het eerst normaal af om te zien wat er gebeurt. Plaats
daarna in de macro een punt P op lijnstuk s_9 en construeer lijn PC.
Speel het opnieuw af en aanschouw het effect. Dit type objecten kunnen gebruikt
worden om geheugen te besparen of vanwege hun vreemde effecten.
KSEG doet zijn best om ongeldige en zinloze constructies met gegeven, definitieve en initiële objecten
te voorkomen. Bijvoorbeeld dat een definitief object gegeven of initiële objecten als kind-object
heeft. Het is niet altijd even duidelijk wat het allemaal doet, maar meestal zal het wel kloppen.
Als je een geval tegenkomt dat het niet klopt, stuur me dan een e-mail. Voeg de juiste macro bij en
geef een omschrijving van de handelingen die de constructie ongeldig maken.
Terug naar boven
Vertaling door Bram Schoenmakers.
Ilya Baran
ibaran@mit.edu
http://www.mit.edu/~ibaran/