# Using_Paths.rb module Tioga # These are the methods and attributes related to using previously created paths in PDF graphics operations. See also Tutorial::Tutorial::SimpleFigure. class Using_Paths < Doc < FigureMaker # :call-seq: # stroke_color # stroke_color = a_color # # Defines the color to use for painting by #stroke operations. def stroke_color end # :call-seq: # line_color # line_color = a_color # # Alias for stroke_color. def line_color end # :call-seq: # fill_color # fill_color = a_color # # Defines the color to use for painting by #fill and other non-stroke graphics operations. def fill_color end # :call-seq: # stroke # # Paints a line along the current path. The stroked line follows each # straight or curved segment in the path, centered on the segment with sides parallel # to it. Each of the path's subpaths is treated separately. # # The results of the stroke operator depend on the current settings of various parameters # in the graphics state. # * The width of the stroked line is determined by the current line_width attribute. # * The color of the line is determined by the current stroke_color attribute. # * The line can be painted either solid or with a dash pattern, as specified by the # current line_type attribute. # * If a subpath is open, the unconnected ends are treated according to the current # line_cap attribute, which may be LINE_CAP_BUTT, LINE_CAP_ROUND, or LINE_CAP_SQUARE. # * Wherever two consecutive segments are connected, the joint between them is # treated according to the current line_join attribute, which may be LINE_JOIN_MITER, # LINE_JOIN_ROUND, or LINE_JOIN_BEVEL. Mitered joins are also subject to the # current miter_limit setting. # NOTE: Points at which unconnected segments happen # to meet or intersect receive no special treatment. In particular, connecting the # ends of a subpath with an explicit add_point_to_path operator rather than with # close_path may result in a messy corner, because line caps will be applied # instead of a line join. # # If a subpath is degenerate (consists of a single-point closed path or of two or # more points at the same coordinates), the stroke operator paints it only if round line # caps have been specified, producing a filled circle centered at the single point. If # butt or projecting square line caps have been specified, stroke produces no output, # because the orientation of the caps would be indeterminate. A single-point open subpath # (specified by a trailing move_to_point operator) produces no output. def stroke end # :call-seq: # close_and_stroke # # Close and #stroke the current path. def close_and_stroke end # :call-seq: # fill # # Fill the path, using the nonzero winding number rule to determine the region to fill. # Any subpaths that are open are implicitly closed before being filled. The nonzero # winding number rule determines whether a given point is inside a path by conceptually # drawing a ray from that point to infinity in any direction and then examining the # places where a segment of the path crosses the ray. Starting with a count of 0, the # rule adds 1 each time a path segment crosses the ray from left to right and subtracts # 1 each time a segment crosses from right to left. After counting all the crossings, # if the result is 0 then the point is outside the path; otherwise it is inside. # # For simple convex paths, the nonzero winding number rule defines the inside and # outside as one would intuitively expect. The more interesting cases are those # involving complex or self-intersecting paths. For a path consisting of a five-pointed # star, drawn with five connected straight line segments intersecting each other, the # rule considers the inside to be the entire area enclosed by the star, including the # pentagon in the center. For a path composed of nested squares, the area enclosed by # both is considered to be inside, provided that both squares are drawn in the same direction. # If the squares are drawn in opposite directions, only the area between them is inside, # according to the nonzero winding number rule. See also #eofill. # # link:images/Fill_Rules.png def fill end # :call-seq: # eofill # # Fill the path, using the even-odd rule to determine the region to fill. The even-odd # rule determines the insideness of a point by drawing a ray from that point in any # direction and simply counting the number of path segments that cross the ray, # regardless of direction. If this number is odd, the point is inside; if even, # the point is outside. This yields the same results as the nonzero winding number # rule for paths with simple shapes, but produces different results for more complex # shapes. See also #fill. def eofill end # :call-seq: # fill_and_stroke # # Fill and then stroke the path, using the nonzero winding number rule to determine # the region to fill (see #fill). This produces the same result as constructing two identical # path objects, painting the first with #fill and the second with #stroke. Note, however, that # the filling and stroking portions of the operation consult different values of # several graphics state parameters, such as the current color. def fill_and_stroke end # :call-seq: # eofill_and_stroke # # Fill and then stroke the path, using the even-odd rule to determine the region to fill (see #eofill). def eofill_and_stroke end # :call-seq: # close_fill_and_stroke # # Close, fill, and then stroke the path, using the nonzero winding number rule to # determine the region to fill (see #fill). def close_fill_and_stroke end # :call-seq: # close_eofill_and_stroke # # Close, fill, and then stroke the path, using the even-odd rule to determine the region to fill. def close_eofill_and_stroke end # :call-seq: # clip # # Sets clipping path using the winding number rule (see #fill for description). def clip end # :call-seq: # eoclip # # Sets clipping path using the even-odd rule (see #eofill for description). def eoclip end end # class end # module Tioga