[Prev][Next][Index][Thread]

Re: Pen settings in FO Dylan




Bruce Hoult wrote in message ...
>In article <8ri4go$5l4$1@nnrp1.deja.com>, johncwhi@my-deja.com wrote:
>
>> I could use some help understanding the options for setting a <pen>
>> object in FO 2.0.
>>
>> Here's some sample code:
>>
>>       with-drawing-options( medium, brush: dark-gray, pen: my-pen )
>>          draw-line( medium, start-x, 150, start-x + 100, 150  );
>>       end;
>>
>>       let his-pen = make( <pen>, width: 6, units: #"normal" ,
>>                          joint-shape: #"miter", cap-shape: #"butt" );
>>       with-drawing-options( medium, brush: dark-gray, pen: his-pen )
>>          draw-line( medium, start-x, 160, start-x + 100, 160  );
>>       end;
>>
>>       let your-pen = make( <pen>, width: 6, units: #"point" ,
>>                          joint-shape: #"bevel", cap-shape: #"square" );
>>       with-drawing-options( medium, brush: dark-gray, pen: your-pen )
>>          draw-line( medium, start-x, 170, start-x + 100, 170  );
>>       end;
>>
>>
>> These are all nested inside a "with-sheet-medium..." macro.  Now all of
>> the lines look the same.  In other words, none of the pen options like
>> cap-shape or joint-shape seem to make any difference.
>
>Caution: I don't know anything about Fun-O, but I *do* know heaps about
>PostScript.
>
>Assuming that "butt", "square", "bevel". "miter" all mean the same as
>they do in PostScript...
>
>1) you can't tell the difference between bevel and miter unless you draw
>more than one line joining each other.  Which you're not doing.  I don't
>know how Fun-O knows if lines are joined.  In PostScript you do a moveto
>then a series of lineto's to create a path, and finally do "stroke" to
>actually draw the lines.
>
>2) butt and square look exactly the same, the only difference being that
>with square the line actually extends half the pensize before and past
>where you ask for the line to be drawn.  You need a fairly thick line to
>tell the difference.
>


DUIM uses exactly this interpretation of these values.
I think it all works right on the Win32 back-end, but I could
have gotten a few things wrong.





References: