2016-03-27 26 views
2

Paternimin birçok renkte olmasını istiyorum. DoLine numaramın her zaman satırını simmilar ile değil aynı renkle yapmasını istiyorum. Bu yüzdenPostScript'te yineleme ile çizgi rengini değiştir

/red 0.41 def 
/green 0.1 def 
/blue 0.21 def 
/incRed {/red red 0.01 add} def 
/incGreen {/green green 0.03 add} def 
/incBlue {/blue blue 0.05 add} def 

ve benim DoLine

/DoLine 
{ 
    incRed 
    incGreen 
    incBlue 
    red green blue setrgbcolor 
    rotation rotate 
    0 linelen rlineto 
    currentpoint stroke 
    translate 0 0 moveto 
} def 

yaptılar Ama sadece bir renkte o çıktı benim paterni Kaçırdığım bir şey var mı

/red 0.41 def 
/green 0.1 def 
/blue 0.21 def 

olarak ayarlandığı? İşte u bu renk artım rutinleri ile

%! 

/Helvetica findfont 8 scalefont setfont 
/ang1 -141 def 
/ang2 {-2 ang1 mul} def 
/linelen 36 def 
/depth 0 def 
/down {/depth depth 1 add def} def 
/up {/depth depth 1 sub def} def 
/red 0.41 def 
/green 0.1 def 
/blue 0.21 def 
/incRed {/red red 0.01 add} def 
/incGreen {/green green 0.03 add} def 
/incBlue {/blue blue 0.05 add} def 

/CrownPos 
{ 
    /x 300 def 
    /y 300 def 
    x y moveto 
} def 

/DoLine 
{ 
    incRed 
    incGreen 
    incBlue 
    red green blue setrgbcolor 
    rotation rotate 
    0 linelen rlineto 
    currentpoint stroke 
    translate 0 0 moveto 
} def 

/Print 
{ 
    gsave 
    .62 .62 scale 
    2 setlinewidth 
    down DoLine 
    depth 8 le 
    { 
     ang1 rotate Print 
      ang2 rotate Print 
    } if 
    up 
    grestore 
} def 

/Crown 
{ 
    /rotation 0 def 
    CrownPos Print 
    stroke 
    /rotation 270 def 
    CrownPos Print 
    stroke 
    /rotation 90 def 
    CrownPos Print 
    stroke 
} def 



    Crown 
600 600 translate 
180 rotate Crown 
    showpage 

cevap

3

İki sorun bunu gerekirse benim her kodudur: 1) onlar, yani bir def eksik (değişken geri yeni değeri set vermedi) ve 2) onlar da artırır çabuk, çok yakında beyaz yollara ulaşıyor. bunun yerine, bu yeniden işlenmiş sürümlerini deneyin:

/incRed { /red red 0.0001 add def } def 
/incGreen { /green green 0.0003 add def } def 
/incBlue { /blue blue 0.0005 add def } def 

enter image description here

İlgili konular