7.3 Grafiki formon je malsamaj ampleksoj

Ni jam vidis kiel grafiki kvadraton, ortangulon je malsamaj ampleksoj. Ni reprenos l’ ekzemplon de la domo de p. § 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