Ni jam vidis kiel grafiki kvadraton, ortangulon je malsamaj ampleksoj. Ni reprenos l’ ekzemplon de la domo de p. 56 kaj vidos kiel modifi la kodon por grafiki la domon je la dezirata skalo.
La celo estas pasigi argumenton al proceduro domo por ke laŭ la parametro, la domo estu pli aŭ malpli granda. Ni deziras ke domo 1 grafiku la domon je reala amplekso.
domo 0.5 grafikos domon je skalo 0.5.
domo 2 grafikos domon je dimensioj duoblaj, ktp.
La koncepto proporcieco estas kompreneble subkaŝita. En reala grando, la proceduro kvadrato estis jena:
por kvadrato ripetu 4 [an 150 dn 90] fino |
Ĉiuj originalaj diminsioj de la domo estas multiplikitaj per la skalo. La proceduro kvadrato estiĝas:
por kvadrato :l ripetu 4 [an 150*:l dn 90] fino |
Do kiam oni tajpos kvadrato 2, la kvadrato havos lateron longan je 150 × 2 = 300. La proporciojn oni respektos! Efektive, oni rimarku ke necesos repreni ĉiujn procedurojn kaj ŝanĝi la longojn je movo laŭ la jena maniero:
an 70 fariĝos an 70*:l
an 45 fariĝos an 45*:l
ktp.
por kvadrato :l ripetu 4 [an 150*:l dn 90] fino por tri :l ripetu 3[an 150*:l dn 120] fino por pordo :l ripetu 2 [an 70*:l dn 90 an 50*:l dn 90] fino por kam :l an 55*:l dn 90 an 20*:l dn 90 an 20*:l fino por mov1 :l dn 90 an 50*:l mdn 90 fino por mov2 :l mdn 90 an 50*:l dn 90 an 150*:l dn 30 fino por mov3 :l l dn 60 an 20*:l mdn 90 an 35*:l ml fino por dom :l kvadrato :l mov1 :l pordo :l mov2 :l tri :l mov3 :l kam :l fino |