Title: Graphics and Multimedia
1Graphics and Multimedia
2OUTLINE
- Font Control
- Drawing Lines, Rectangles and Ovals
- Drawing Arcs
- Drawing a General Path
3Font Control
- Fonts
- After a Font is created, its properties cannot be
modified - Programmers must create a new Font object to be
different - Font constructors
- Must require a font name as an argument
- They usually require the font size as an argument
- And usually require the font style which is a
member of - the FontStyle enumeration Bold, Italic,
Regular, Strikeout, Underline. - Graphics method DrawString sets the current
drawing fontthe font in which the text
displaysto its Font argument.
4Font Control
- DrawString constructors
- takes a String to display,
- the display Font,
- a Brush
- and the x- and y-coordinates of the location for
the Strings first character.
5Font Control
GraphicsUnit argumentan enumeration that allows
users to specify the unit of measurement employed
to describe the font size. Members of the
GraphicsUnit enumeration include Point (1/72
inch), Display (1/75 inch), Document (1/300
inch), Millimeter, Inch and Pixel.
6- 1 ' Fig. 16.9 UsingFonts.vb
- 2 ' Demonstrating various font settings.
- 3
- 4 Public Class FrmFonts
- 5 Inherits System.Windows.Forms.Form
- 6
- 9 ' demonstrate various font and style
settings - 10 Protected Overrides Sub OnPaint( ByVal
paintEvent As PaintEventArgs) - 12
- 13 Dim graphicsObject As Graphics
paintEvent.Graphics - 14 Dim brush As SolidBrush New
SolidBrush(Color.DarkBlue) - 15
- 16 ' arial, 12 pt bold
- 17 Dim style As FontStyle
FontStyle.Bold - 18 Dim arial As Font New Font( New
FontFamily("Arial"), 12, style) - 20
- 21 ' times new roman, 12 pt regular
- 22 style FontStyle.Regular
- 23 Dim timesNewRoman As Font New Font(
"Times New Roman", 12, style)
Creates a DarkBlue SolidBrush object (brush),
causing all strings drawn with that brush to
appear in DarkBlue
7- 31 ' tahoma, 18 pt strikeout
- 32 style FontStyle.Strikeout
- 33 Dim tahoma As Font New
Font("Tahoma", 18, style) - 34
- 35 graphicsObject.DrawString(arial.Name
" 12 point bold.", arial, brush, 10, 10) - 37
- 38 graphicsObject.DrawString(timesNewRoman
.Name _ - 39 " 12 point plain.", timesNewRoman,
brush, 10, 30) - 40
- 41 graphicsObject.DrawString(courierNew.Na
me _ - 42 " 16 point bold and italic.",
courierNew, brush, 10, 54 ) - 43
- 44 graphicsObject.DrawString(tahoma.Name
_ - 45 " 18 point strikeout.", tahoma,
brush, 10, 75) - 46 End Sub ' OnPaint
- 47
- 48 End Class ' FrmFonts
8Drawing Lines, Rectangles and Ovals
- Drawing shape outlines
- Versions that take a Pen and four Integers are
used - Drawing solid shapes
- Versions that take a Brush and four Integers
- Integer arguments
- First two represent the coordinates of the
upper-left corner of the shape or its enclosing
area - Last two indicate the shapes width and height
9Drawing Lines, Rectangles and Ovals
10Drawing Lines, Rectangles and Ovals
Fig. 16.15 Ellipse bounded by a rectangle.
11- 1 ' Fig. 16.14 LinesRectanglesOvals.vb
- 2 ' Demonstrating lines, rectangles, and
ovals. - 3
- 4 Public Class FrmDrawing
- 5 Inherits System.Windows.Forms.Form
- 6
- 7 ' Visual Studio .NET generated code
- 8
- 9 ' display ovals lines, and rectangles
- 10 Protected Overrides Sub OnPaint( _
- 11 ByVal paintEvent As PaintEventArgs)
- 12
- 13 ' get graphics object
- 14 Dim g As Graphics paintEvent.Graphics
- 15 Dim brush As SolidBrush New
SolidBrush(Color.Blue) - 16 Dim pen As Pen New
Pen(Color.AliceBlue) - 17
- 18 ' create filled rectangle
- 19 g.FillRectangle(brush, 90, 30, 150,
90)
12- 36 ' draw connecting lines
- 37 g.DrawLine(pen, 380, 55, 380, 100)
- 38 g.DrawLine(pen, 280, 55, 280, 100)
- 39
- 40 ' draw Ellipse outline
- 41 g.DrawEllipse(pen, 280, 30, 100, 50)
- 42 End Sub ' OnPaint
- 43
- 44 End Class ' FrmDrawing
13Drawing Arcs
- Arcs
- Arcs are portions of ellipses.
- Measured in degrees, beginning at the starting
angle and continuing for a specified number of
degrees, the arc angle. - An arc is said to sweep (traverse) its arc angle,
beginning from its starting angle. - Measuring
- Sweep in a clockwise direction, measured in
positive degrees - Sweep in a counterclockwise direction, measured
in negative degrees - Graphics methods used to draw arcs
- DrawArc, DrawPie, and FillPie
14Drawing Arcs
Fig. 16.16 Positive and negative arc angles.
15Drawing Arcs
16- 1 ' Fig. 16.18 DrawArcs.vb
- 2 ' Drawing various arcs on a form.
- 3
- 4 Public Class FrmArcTest
- 5 Inherits System.Windows.Forms.Form
- 8
- 9 Protected Overrides Sub OnPaint( _
- 10 ByVal paintEvent As PaintEventArgs)
- 11
- 12 ' get graphics object
- 13 Dim graphicsObject As Graphics
paintEvent.Graphics - 14 Dim rectangle1 As Rectangle New
Rectangle(15, 35, 80, 80) - 15 Dim brush1 As SolidBrush New
SolidBrush(Color.FireBrick) - 16 Dim pen1 As Pen New Pen(brush1, 1)
- 17 Dim brush2 As SolidBrush New
SolidBrush(Color.DarkBlue) - 18 Dim pen2 As Pen New Pen(brush2, 1)
- 19
- 20 ' start at 0 and sweep 360 degrees
- 21 graphicsObject.DrawRectangle(pen1,
rectangle1)
Draws a rectangle and then an arc inside the
rectangle
Changes the location of the Rectangle by setting
its Location property to a new Point
17- 34 ' start at 0 and sweep 360 degrees
- 35 rectangle1.Location New Point(15,
120) - 36 rectangle1.Size New Size(80, 40)
- 37 graphicsObject.DrawRectangle(pen1,
rectangle1) - 38 graphicsObject.FillPie(brush2,
rectangle1, 0, 360) - 39
- 40 ' start at 270 and sweep -90 degrees
- 41 rectangle1.Location New Point(100,
120) - 42 graphicsObject.DrawRectangle(pen1,
rectangle1) - 43 graphicsObject.FillPie(brush2,
rectangle1, 270, -90) - 44
- 45 ' start at 0 and sweep -270 degrees
- 46 rectangle1.Location New Point(185,
120) - 47 graphicsObject.DrawRectangle(pen1,
rectangle1) - 48 graphicsObject.FillPie(brush2,
rectangle1, 0, -270) - 49 End Sub ' OnPaint
- 50
- 51 End Class ' FrmArcTest
Sets the Size property to a new Size object
18Drawing a General Path
- General path is a shape constructed from straight
lines and complex curves. - TranslateTransform is a graphics method to
indicate that the origin of an object should be
translated to the coordinates (X,Y). - RotateTransform is a graphics method to move an
object to the next position with a particular
rotation angle in degree. - How to use
Dim graphicsObject As Graphics
e.Graphics graphicsObject.TranslateTransform(X,Y)
graphicsObject.RotateTransform(angle)
19DrawStars.vb
- 1 ' Fig. 16.22 DrawStars.vb
- 2 ' Using paths to draw stars on a form.
- 3
- 4 Imports System.Drawing.Drawing2D
- 5
- 6 Public Class FrmDrawStars
- 7 Inherits System.Windows.Forms.Form
- 8
- 9 ' Visual Studio .NET generated code
- 10
- 11 ' create path and draw stars along it
- 12 Protected Overrides Sub OnPaint(ByVal e
As PaintEventArgs) - 13 Dim graphicsObject As Graphics
e.Graphics - 14 Dim i As Integer
- 15 Dim random As Random New Random()
- 16 Dim brush As SolidBrush _
- 17 New SolidBrush(Color.DarkMagenta)
- 18
- 19 ' x and y points of path
Defines two Integer arrays, representing the x-
and y-coordinates of the points in the star
20- 36
- 37 ' close shape
- 38 star.CloseFigure()
- 39
- 40 ' rotate origin and draw stars in
random colors - 41 For i 1 To 18
- 42 graphicsObject.RotateTransform(20)
- 43
- 44 brush.Color Color.FromArgb(random.
Next(200, 255), _ - 45 random.Next(255),
random.Next(255), random.Next(255)) - 46
- 47 graphicsObject.FillPath(brush,
star) - 48 Next
- 49
- 50 End Sub ' OnPaint
- 51
- 52 End Class ' FrmDrawStars
Uses GraphicsPath method CloseFigure to complete
the shape
Draws the star 18 times, rotating it around the
origin
Uses Graphics method RotateTransform to move to
the next position on the form
Graphics method FillPath draws a filled version
of the star with the Brush created earlier