0% found this document useful (0 votes)
123 views50 pages

Attributesofoutputprimitives ch4

The document discusses various attributes that can be applied to output primitives like lines, curves, filled areas, and text. It describes line attributes like type (solid, dashed, dotted), width, color, and end caps. Curve attributes are similar to line attributes. Color can be represented directly in the frame buffer or indirectly via a color lookup table. Filled areas can be hollow, solid, or patterned and specified via fill style and color. Text characters can be bitmapped and stored as arrays representing pixels. Attributes allow controlling the appearance of output primitives.

Uploaded by

nooti
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
123 views50 pages

Attributesofoutputprimitives ch4

The document discusses various attributes that can be applied to output primitives like lines, curves, filled areas, and text. It describes line attributes like type (solid, dashed, dotted), width, color, and end caps. Curve attributes are similar to line attributes. Color can be represented directly in the frame buffer or indirectly via a color lookup table. Filled areas can be hollow, solid, or patterned and specified via fill style and color. Text characters can be bitmapped and stored as arrays representing pixels. Attributes allow controlling the appearance of output primitives.

Uploaded by

nooti
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 50

Attributes of Output

Primitives
Attributes of Output
Primitives
Contents :

Definition
Line Attribute
Curve Attribute
Color and Grayscale Level
Area Filled Attribute
Text and Characters
Introduction
The way a primitive is to be displayed is referred to as an
Attribute Parameter.

Some attribute parameters include color ,size etc.

Different ways to incorporate attribute changes :


 Extend the parameter list associated with each primitive

 Maintain a system list of current attribute values and


use separate functions to set attributes.
LINE ATTRIBUTES

 Basic attributes of a straight line segment are its


type, its width, and its color.

 In some graphics packages, lines can also be


displayed using selected pen or brush
Line Type
 The line-type attribute include solid lines, dashed lines,
and dotted lines. We modify a line drawing algorithm to
generate such lines by setting the length and spacing of
displayed solid sections along the line path.

A dashed line could be displayed by generating an inter


dash spacing that is equal to the length of the solid
sections. Both the length of the dashes and the inter dash
spacing are often specified as user options.
 A dotted line can be displayed by generating very
short dashes with the spacing equal to or greater than
the dash size.
 To set line type attributes in a PHICS application
program, a user invokes the function
setLinetype (It)
 where parameter lt is assigned a positive integer value
of 1,2,3, or 4 to generate.
 lines that are, respectively, solid, dashed, dotted, or
dash-dotted.
 Pixel counts for the span length and
interspan spacing can be specified
in a pixel mask, which is a string
containing the digits I and 0 to
indicate which positions to plot
along the line path.

 The mask 1111000, for instance,


could be used to display a dashed
line with a dash length of four
pixels and an interdash spacing of
three pixels.
Line Width
 Line- width options depends on the capabilities of the
output device. A heavy line on video monitor could be
displayed as adjacent parallel lines, while a pen plotter
might require pen changes.

 We set the line-width attribute with the command: using

setLineWidthScaleFactor(lw);

 Line-width parameter lw is assigned a positive number


to indicate the relative width of the line to be displayed..
 We can adjust the shape of the line ends to give
them a better appearance by adding line caps.

 One kind of line cap is the butt cap obtained by


adjusting the end positions of the component
parallel lines so that the thick line is displayed with
square ends that are perpendicular to the line path.

 If the specified line has slope m, the square end of


the thick line has slope - l / m .
 Another line cap is the round cap obtained by
adding a filled semicircle to each butt cap.

 The circular arcs are centered on the line endpoints


and have a diameter equal to the line thickness.

 A third type of line cap is the projecting square cap.

 Here, we simply extend the line and add butt caps


that are positioned one-half of the line width
beyond the specified endpoints.
 We can generate thick polylines that are
smoothly joined at the cost of additional
processing at the segment endpoints.

 There three possible methods for smoothly


joining two line segments.

 miter join
 round join
 beveI join.
 A miter join is accomplished by
extending the outer boundaries of
each of the two lines until they
meet.

 A round join is produced by capping


the connection between the two
segments with a circular boundary
whose diameter is equal to the line
width.

 a belevel join is generated by


displaying the line segments with
butt caps and filling in the triangular
gap where the segments meet.
Pen and Brush Options
 With some packages, lines can be displayed
with pen or brush selections.
 Options in this category include shape, size,

and pattern.
Line Color
 A polyline routine displays a line in the current
color by setting this color value in the frame
buffer at pixel locations along the line path
using the setpixel procedure. The number of
color choices depends on the number of bits
available per pixel in the frame buffer.
 We set the line color value in PHlCS with the
function
CURVE ATTRIBUTES
 Parameters for curve attributes are the same as
those for line segments. We can display curves
with varying colors, widths, dotdash patterns,
and available pen or brush options. Methods
for adapting curve-drawing algorithms to
accommodate attribute selections are similar
to those for line drawing.
COLOR AND GRAYSCALE LEVELS
 General purpose raster-scan systems, usually provide
a wide range of colors, while random-scan monitors
typically offer only a few color choices, if any.

 Color options are numerically coded with values


ranging from 0 through the positive integers.

 For CRT monitors, these color codes are then


converted to intensity level settings for the electron
beams. With color plotters, the codes could control
ink-jet deposits or pen selections.
COLOR AND GRAY SCALE LEVEL
Color
 Colors are represented by colors codes which
are positive integers.
 Color information is stored in frame buffer or
in separate table and use pixel values as index
to the color table.
 Two ways to store color information :
1. Direct
2. Indirect

20
COLOR
Direct

21
COLOR
Indirect

22
COLOR
Exercise:
What is the size of frame buffer required for the following
cases:

Case 1 (Direct): Resolution of 1024 * 1024 with 24 bits per


pixel

Case 2 (Indirect): Same resolution with 8 bit per pixel that


indexed out of 16 million available colors

Conclusion

CLUT is good for storage but cant give a very high resolution
picture.

23
COLOR Lookup Table

24
COLOR Lookup Table

25
 A minimum number of colors can be provided
in this scheme with 3 bits of storage per pixel,
as shown in Table.
Grayscale
 With monitors that have no color capability,
color functions can be used in an application
program to set the shades of gray, or
grayscale, for displayed primitives.

 Numeric values over the range from 0 to 1 can


be used to specify grayscale levels, which are
then converted to appropriate binary codes for
storage in the raster.
AREA-FILL ATTRIBUTES
 Options for filling a defined region include a
choice between a solid color or a patterned
fill and choices for the particular colors and
patterns. These fill options can be applied to
polygon regions or to areas defined with
curved boundaries, depending on the
capabilities of the available package. In
addition, areas can be painted using various
brush styles, colors, and transparency
parameters.
Fill Styles
 Areas are displayed with three basic fill
styles: hollow with a color border, filled
with a solid color, or filled with a specified
pattern or design.

 A basic fill style is selected in a PHIGS


program with the function

 Values for the fill-style parameter fs


include hollow, solid, and pattern.
 Another value for fill style is hatch, which is used to
fill an area with selected hatching patterns-parallel
lines or crossed lines.

 Hollow areas are displayed using only the boundary


outline, with the interior color the same as the
background color.
 A solid fill is displayed in a single color up to
and including the borders of the region.

 The color for a solid interior or for a hollow area


outline is chosen with

 where fill color parameter fc is set to the


desired color code.
 A polygon hollow fill is generated with a line
drawing routine as a closed polyline.
Soft Fill
 Modified boundary-fill and flood-fiII procedures that
are applied to repaint areas so that the fill color is
combined with the background colors are referred to
as soft-fill .
 One use for these fill methods is to soften the fill
colors at object borders that have been blurred to
antialias the edges.
 Another is to allow repainting of a color area that was
originally filled with a semitransparent brush, where
the current color is then a mixture of the brush color
and the background colors "behind" the area. In either
case, we want the new fill color to have the same
variations over the area as the current fill color.
Text and Characters (Bitmapped (raster))
Each character represented (stored) as a 2-D array
– Each element corresponds to a pixel in a rectangular “character
cell”
– Simplest: each element is a bit (1=pixel on, 0=pixel off)

00111000
01101100
11000110
11000110
11111110
11000110
11000110
00000000

33
CHARACTER ATTRIBUTES

 The appearance of displayed characters is


controlled by attributes such as font, size,
color, and orientation.

 Attributes can be set both for entire character


strings (text) and for individual characters
defined as marker symbols.
Text Attributes
 First of all, there is the choice of font (or
typeface), which is a set of characters with a
particular design style such as New York,
Courier, Helvetica, London, 'Times Roman,
and various special symbol groups.

 The characters in a selected font can also be


displayed with assorted underlining styles
(solid, dotted , double), in boldface, in italics.
and in outline or shadow styles.
 A particular font and associated style is selected in
a PHlGS program by setting an integer code for
the text font parameter t f in the function.
setTextFont(tf)

 Color settings for displayed text are stored in the


system attribute list and used by the procedures
that load character definitions into the frame
buffer.

 When a character string is to be displayed, the


current color is used to set pixel values in the
frame buffer corresponding to the character
shapes and positions
 Control of text color (or intensity) is managed
from an application program with
setTextColorIndex(tc)

 where text color parameter tc specifies an


allowable color code.
 Character size is specified by printers an
compositors in points, where 1 point is
0.013837 inch.
 Point measurements specify the size of the body
of a character but different fonts with the same
points specifications can have different character
size depending on the design of the typeface.
 The distance between the bottom line and the top
line of the character body is the same for all
characters in a particular size and typeface, but the
body width may vary.

 Character height is defined as the distance between


the baseline and the cap line of characters.
 Text size can be adjusted without changing the width-
to-height ratio of characters with
setChatacterHeight(ch)

 Parameter ch is assigned a real value greater than 0 to


set the coordinate height of capital letters: the distance
between baseline and capline in user coordinates.
 The width only of text can be set with the
function
setCharacterExpansionFactor(cw)
 where the character-width parameter cw is

set to a positive real value that scales the


body width of characters.
 Spacing between characters is controlled
separately with
setCharacterSpacing(cs)
 where the character-spacing parameter cs can

he asslgned any real value. The value assigned


to cs determines the spacing between character
bodies along print lines.
 Negative values for cs overlap character bodies;

positive values insert space to spread out the


displayed characters.
 The orientation for a displayed character
string is set according to the direction of the
character up vector:
 setCharacterUpVector(upvect)
 Parameter upvect in this function is assigned

two values that specify the x and y vector


components.
 Text is then displayed so that the orientation

of characters from baseline to capline is in


the direction of the up vector.
 For example, with upvect = (I, I), the direction
of the up vector is 45" and text would be
displayed
 It is useful in many applications to be able to
arrange character strings vertically or
horizontally. An attribute parameter for this
option is set with the statement
 setTextPath(tp)
 where the text-path parameter tp can be
assigned the value: right, left, up, or down.
 A procedure for implementing this option must

transform the character patterns


into the specified orientation before
transferring them to the frame buffer..
 Another handy attribute for character strings is
alignment. This attribute specifies how text is to
be positioned with respect to the start
coordinates. Alignment attributes are set with
setAlignment(h,v)
 where parameters h and v control horizontal and

vertical alignment.

 Horizontal alignment is set by assigning h a


value of left, centre, or right.

 Vertical alignment is set by assigning v a value


of top, cap, half, base, or bottom
Marker Attribute:
 A marker symbol is a single character that can he
displayed in different colors and in different sizes.
 We select a particular character to be the marker symbol
with
 setMarkerType(mt)
 where marker type parameter mt is set to an integer code.

 Typical codes for marker type are the integers 1 through


5,
 specifying, respectively, a dot (.), a vertical cross (+), an
asterisk (*), a circle (o), and a diagonal cross (X).

 DispIayed marker types are centered on the marker


coordinates.
 We set the marker size with

setMarkerSizeScaleFactor (ms)

 with parameter marker size ms assigned a


positive number.

 Values greater than 1 produce character


enlargement; values less than 1 reduce the
marker size.
 Marker color is specified with
 setPol y mark erColouIndex (mc )

 A selected color code for parameter mc is


stored in the current attribute list and used to
display subsequently specified marker
primitives.

You might also like