1% redpart (1,1,0,0) crashes 2 3% let normalredpart = redpart ; 4% let normalgreenpart = greenpart ; 5% let normalbluepart = bluepart ; 6% let normalcyanpart = cyanpart ; 7% let normalmagentapart = magentapart ; 8% let normalyellowpart = yellowpart ; 9% let normalblackpart = blackpart ; 10 11% vardef redpart expr p = if cmykcolor p : 1 - normalcyanpart p elseif rgbcolor p : normalredpart p else : p fi enddef ; 12% vardef greenpart expr p = if cmykcolor p : 1 - normalmagentapart p elseif rgbcolor p : normalgreenpart p else : p fi enddef ; 13% vardef bluepart expr p = if cmykcolor p : 1 - normalyellowpart p elseif rgbcolor p : normalbluepart p else : p fi enddef ; 14% vardef cyanpart expr p = if cmykcolor p : normalcyanpart p elseif rgbcolor p : 1 - normalredpart p else : p fi enddef ; 15% vardef magentapart expr p = if cmykcolor p : normalmagentapart p elseif rgbcolor p : 1 - normalgreenpart p else : p fi enddef ; 16% vardef yellowpart expr p = if cmykcolor p : normalyellowpart p elseif rgbcolor p : 1 - normalbluepart p else : p fi enddef ; 17% vardef blackpart expr p = if cmykcolor p : normalblackpart p elseif rgbcolor p : 0 else : p fi enddef ; 18 19vardef rcomponent expr p = if rgbcolor p : redpart p elseif cmykcolor p : 1 - cyanpart p else : p fi enddef ; 20vardef gcomponent expr p = if rgbcolor p : greenpart p elseif cmykcolor p : 1 - magentapart p else : p fi enddef ; 21vardef bcomponent expr p = if rgbcolor p : bluepart p elseif cmykcolor p : 1 - yellowpart p else : p fi enddef ; 22vardef ccomponent expr p = if cmykcolor p : cyanpart p elseif rgbcolor p : 1 - redpart p else : p fi enddef ; 23vardef mcomponent expr p = if cmykcolor p : magentapart p elseif rgbcolor p : 1 - greenpart p else : p fi enddef ; 24vardef ycomponent expr p = if cmykcolor p : yellowpart p elseif rgbcolor p : 1 - bluepart p else : p fi enddef ; 25vardef bcomponent expr p = if cmykcolor p : blackpart p elseif rgbcolor p : 0 else : p fi enddef ; 26 27vardef somecolor = (1,1,0,0) enddef ; 28 29fill OverlayBox withcolor (rcomponent somecolor,gcomponent somecolor,bcomponent somecolor) ; 30fill OverlayBox withcolor (ccomponent somecolor,mcomponent somecolor,ycomponent somecolor,bcomponent somecolor) ; 31 32% def newcolor text v = forsuffixes i=v : save i ; color i ; endfor ; enddef ; 33% def newnumeric text v = forsuffixes i=v : save i ; numeric i ; endfor ; enddef ; 34% def newboolean text v = forsuffixes i=v : save i ; boolean i ; endfor ; enddef ; 35% def newtransform text v = forsuffixes i=v : save i ; transform i ; endfor ; enddef ; 36% def newpath text v = forsuffixes i=v : save i ; path i ; endfor ; enddef ; 37% def newpicture text v = forsuffixes i=v : save i ; picture i ; endfor ; enddef ; 38% def newstring text v = forsuffixes i=v : save i ; string i ; endfor ; enddef ; 39 40% width := 10 ; 41% beginfig(1) ; 42% newpath width, height ; width := origin -- cycle ; 43% endfig ; 44% width := 10 ; 45 |