Cabri-FAQ (33)
[ Alle Vragen | Meetkunde | Cabri ]
Vorige | Begin | Volgende |
Vraag 33
Hoe komt het dat een macro gedefinieerd voor een lijnstuk en een driehoek niet goed werkt?
Antwoord
Zoals bekend is het mogelijk eenzelfde macro voor verschillende objecten een bepaalde constructie te laten uitvoeren (zie hiervoor de pagina "Macro:Cirkel3P"; en wel de paragraaf Definitie uitbreiden en ook de pagina "Opbouw van een macro", de paragraaf "Regels").
Ter beantwoording van de vraag gaan we uit van een voorbeeld.
We willen een vermenigvuldiging van een lijnstuk of een driehoek met
factor 2 tov. een punt in eenzelfde macro vastleggen. De punten A', B', P', Q', R' zijn beelden van O bij een puntspiegeling in de originele punten. We leggen nu als eerste de vermenigvuldiging van de driehoek
vast met: |
Daarna leggen we de definitie voor het lijnstuk vast met:
Beginobjecten:
lijnstuk AB, punt O
Eindobjecten:
lijnstuk A'B'
Nu moeten we voorafgaand aan het Bewaren op disk kiezen voor Aanvullen of
Vervangen.Uiteraard kiezen we voor Aanvullen.
Mth:
0 CN:2, ON:3, FN:3, PO:2 CT: segment, CS 2, V, W, t, DS:1 1, GT:0, V, nSt point, CS 0, R, W, t, DS:1 1, GT:1, V, nSt Const: Sym, Mth:0, 1, 0, CN:2, VN:1, Const: 4 1, R, W, t, DS:1 1, GT:1, V, nSt Sym, Mth:0, 1, 0, CN:2, VN:1, Const: 4 2, R, W, t, DS:1 1, GT:1, V, nSt Seg, Mth:0, 1, 0, CN:2, VN:0, Const: 5 6, V, W, t, DS:1 1, GT:0, V, nSt |
Mth:
1 CN:2, ON:4, FN:4, PO:3 CT: point, CS 0, R, W, t, DS:1 1, GT:1, V, nSt triangle, CS 3, V, W, t, DS:1 1, GT:0, V, nSt Const: Sym, Mth:0, 1, 0, CN:2, VN:1, Const: 1 2, R, W, t, DS:1 1, GT:1, V, nSt Sym, Mth:0, 1, 0, CN:2, VN:1, Const: 1 3, R, W, t, DS:1 1, GT:1, V, nSt Sym, Mth:0, 1, 0, CN:2, VN:1, Const: 1 4, R, W, t, DS:1 1, GT:1, V, nSt Tr, Mth:0, 1, 0, CN:3, VN:0, Const: 6 7 8, V, W, t, DS:1 1, GT:0, V, nSt |
De laatste definitie (die voor het lijnstuk) wordt nu Method 0; de
bestaande definitie (voor de driehoek) wordt gewijzigd in Method 1 (Mth:
1).
Zie hierboven voor een deel van de code in het macro-bestand.
De code van Method 0 (de laatst gedefinieerde, dus die voor het lijnstuk) staat
daardoor als eerste in het bestand.
Gebruiken we nu de aldus gedefinieerde macro voor een driehoek, dan is Method 0 ook van
toepassing op een driehoek, namelijk op de aangewezen zijde van de driehoek. We zien dan
op het scherm iets als:
En dat is inderdaad niet wat we verwachten! N.B. |
Wanneer we de macro echter definieren beginnend met het lijnstuk en daarna voor de driehoek (Method 0 werkt dan op een driehoek, Method 1 op een lijnstuk) dan verloopt een en ander wel zoals de bedoeling was.
Merk op, dat bij de juiste definitie toch voorafgaand aan het selecteren
van de driehoek de aanwijzingstekst "Deze zijde van de driehoek"
verschijnt. Echter na het klikken wordt nu toch de vergrote driehoek getekend. |
Zie
Download.
De bestanden die op het bovenstaande betreking hebben, zijn Dubbel.fig, Dubbel_Goed.mac en Dubbel_Fout.mac.
Vorige | Begin | Volgende |