2016-10-18 20 views
0

我是一個初學者的後腳本,剛開始工作後的腳本。 我想創建一個後腳本過程,我可以使用後腳本的陰影效果。此陰影可以有多於兩種顏色,因此我需要定義類型3的拼接功能。類型3功能過程中的腳本

我正在考慮定義過程對於函數2和更高版本,我可以使用此過程來定義類型3函數。

下面

是我試過......我對着

/Function2 { 
/b2 exch def 
/g2 exch def 
/r2 exch def 
/b exch def 
/g exch def 
/r exch def 
/FunctionType 2 
/Domain [ 0 1 ] 
/C0 [ r g b ] 
/C1 [ r2 g2 b2 ] 
/N 1 
} def 

/Function3 
{ 
    /num exch def 
    /FunctionType 3 
    /Domain [ 0 1 ] 
    /Functions [1 1 num { pop Function2 } for ] 
    /Bounds [ 1 1 num-1 { pop } for ] 
    /Encode [ 1 1 num { pop 0 1 } for ] 
} def 

{ 
    /ShadingType 3 
    /ColorSpace /DeviceRGB 
    /Coords [ 200 200 0 200 200 100 ] 
    /Extend [ true true ] 
    /Function Function3 
} 
shfill 

問題是如何讀取堆棧綁定變量。 我不確定這會起作用或不起作用。請檢查並讓我知道那裏的問題。

回答

2

我不確定你在這裏要求什麼。也許你可以澄清這個問題。你不'從堆棧中讀取綁定變量',堆棧對象就是這個對象。

此:

**/Bounds [ 1 1 num-1 { pop } for ]** 

看起來不正確我「NUM-1」將立即進行評估,而你不知道;噸似乎已經定義的名稱對象「/ NUM-1」,所以將拋出我認爲未定義的錯誤。

另外,當然,'**'結構同樣會引發錯誤。

您已經將函數定義爲'程序'(在PostScript術語中實際上是可執行數組),而PostScript函數需要是字典,所以您在這裏不能使用。那就是你使用'{'和'}'時,你應該簡單地使用'< <'和'>>'。

函數字典不會在棧上帶參數 如果您真的剛剛開始使用PostScript,函數和陰影可能是最差的地方,因爲它們相當複雜。

這裏是工作示例同時使用2型和3型功能,請過目陰影:

%!PS-Adobe-3.0 

gsave 
0.480 setlinewidth 
1 setlinecap 
1 setlinejoin 
0.302 0.302 0.302 setrgbcolor 
/stop_function 
<< 
    /FunctionType 2 
    /Domain[0 1] 
    /C0 [1 0 0] 
    /C1 [0 1 0] 
    /N 1 
>> def 
/RepFunction 
<< 
    /FunctionType 3 
    /Domain [ -81 1 ] 
    /Functions [ 82 {stop_function} repeat ] 
    /Bounds [ -80 1 0 {} for ] 
    /Encode [ -81 1 0 { pop 0 1 } for ] 
>> def 
<< 
    /PatternType 2 
    /Shading 
    << 
     /ShadingType 3 
     /ColorSpace [/DeviceRGB] 
     /Extend [false false] 
     /Coords [-1300.8 -468 979.2 60 504 7.2] 
     /Function 
     << 
     /FunctionType 3 
     /Domain [0 1] 
     /Bounds [] 
     /Encode[-80 1] 
     /Functions [RepFunction] 
     >> 
    >> 
>> 
matrix makepattern setpattern 
12.000 528.000 moveto 
84.000 528.000 lineto 
84.000 456.000 lineto 
12.000 456.000 lineto 
closepath 
gsave 
fill 
grestore 
0.302 0.302 0.302 setrgbcolor 
stroke 
grestore 

showpage 
+0

感謝您的答覆。 這裏我正在尋找的是將顏色和座標的一些外部值傳遞給陰影。在這裏,我從某些第三方API獲取顏色和座標,並希望在後期腳本中繪製這些顏色和座標。 我想定義一個可用於未來輸入集的通用過程。無論你給出的是不是通用的。 – archit

+0

請解釋-80 -81 82。 – archit

+0

認真嗎?如果你不能遵循這一點,那麼我建議你解決一些更基本的問題,並在對PostScript有更深入的理解時回到問題中來。很明顯,我沒有給你一個通用的解決方案,原因有很多。其中之一就是你沒有給出(也沒有)完整的問題描述。 – KenS