46
Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

  • View
    217

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

Chapter 13

Graphics, Animation, Sound, and

Drag-and-Drop

Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved.McGraw-Hill

Page 2: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-2

Objectives (1 of 2)

• Use Graphics methods to draw shapes, lines, and filled shapes.

• Create a drawing surface with a Graphics object.

• Instantiate Pen and Brush objects as needed for drawing.

• Create animation by changing pictures at run time.

• Create simple animation by moving images.

Page 3: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-3

Objectives (2 of 2)

• Use the Timer component to automate animation.

• Use scroll bars to move an image.

• Add a sound player component to add sound to a project.

• Incorporate drag-and-drop events into your program.

• Draw a pie chart using the methods of the Graphics object.

Page 4: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-4

Graphics in Windows and the Web

• Graphics refers to any text, drawing, image, or icon that is displayed on the screen in either:

–Windows Forms

• PictureBox control

• Can draw graphics shapes (circles, lines, rectangles) on a form or control

• Accepts more file formats than a Web Form

–Web Forms

• Image control

Page 5: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-5

The Graphics Environment

• >NET framework uses GDI+ technology for drawing graphics.

• GDI+ is designed to be device-independent.

• Code to draw a graphic is the same regardless of the output device.

Page 6: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-6

Steps for Drawing Graphics

• Create a Graphics object to use as a drawing surface.

• Instantiate a Pen or Brush object to draw with.

• Call the drawing methods from the Graphics object.

Page 7: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-7

The Paint Event Procedure

• Place code for drawing methods in the Paint event procedure for the form or control.

• Graphics are redrawn every time form is repainted or rendered.

• Declare a Graphics object.

• Assign the Graphics property of the procedure's PaintEventArgs argument to the new Graphics object.

Private Sub Form1_Paint(ByVal sender As Object, _ ByVal e As System.Windows.Forms.PaintEventArgs) _

Handles Me.Paint' Create a graphics object.Dim Gr As Graphics = e.Graphics

Page 8: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-8

Pen and Brush Objects (1 of 2)

• Pen

• Used to draw lines or outlined shapes such as rectangles or circles

• Properties: Width, Color

• Brush

• Used to create filled shapes

• Property: Color

Page 9: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-9

Pen and Brush Objects (2 of 2)

• Width property• Specifies the width of the stroke of a line or

outlined shape created by Pen object

• Specified in pixels

• Default width = One pixel

• Color property• Specifies color of lines drawn by Pen object and

color of filled shapes drawn by Brush object

• Assigns color using Color constants

Page 10: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-10

Graphic Shapes Drawn with Pen and Brush Objects

Drawn with Pen

Drawn with Brush

Page 11: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-11

The Pen Class

• Constructors

• Examples

Pen(Color)Pen(Color, Width)

Dim RedPen As New Pen(Color.Red)Dim WidePen As New Pen(Color.Black, 10)

Page 12: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-12

The SolidBrush Class

• Constructor

• Example

SolidBrush(Color)

Dim BlueBrush As New SolidBrush(Color.Blue)

There are other Brush Classes:TextureBrush, HatchBrush, LinearGradientBrush, PathGradientBrush. See Help for more information.

Page 13: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-13

The Coordinate System (1 of 2)

• Graphics are measured from a starting point of 0,0 for the X and Y coordinates beginning in the upper-left corner.

• X represents the horizontal position and Y is the vertical position.

• The starting point depends on where the graphic is placed — each drawing method allows a specific starting position using X and Y coordinates.

• Most of the drawing methods allow the position to be specified using either

• Point structure• Size structure • Rectangle structure

Page 14: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-14

The Coordinate System (2 of 2)

Form

PictureBox

0,0Position

On Form

0,0Position OnPictureBox

Page 15: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-15

The Point Structure

• Designed to hold the X and Y coordinates as a single unit

• Create a Point object and give it values for X and Y.

• Use the object anywhere that accepts a Point structure as an argument.

• Example

Dim MyStartingPoint As New Point(20, 10)

Page 16: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-16

The Size Structure

• Two components, specified in pixels• Width (specified first)

• Height

• Use the object anywhere that accepts a Size structure as an argument.

• Example

Dim MyPictureSize As New Size(100, 20) ‘Width is 100, height is 20

Page 17: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-17

The Rectangle Structure

• Defines a rectangular region

• Specified by

•Upper left corner (X and Y coordinates )

•Size (width and height)

• Use the object anywhere that accepts a Rectangle structure as an argument.

• Example

Dim myOtherRectangle As New Rectangle(XInteger, YInteger, _ WidthInteger, HeightInteger)

Dim MyRectangle As New Rectangle(MyStartingPoint, MyPictureSize)

Page 18: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-18

Graphics Methods

• Two basic categories, draw and fill

• Draw methods create an outline shape with a Pen object.

• Fill methods are solid shapes created with Brush objects.

• Each method requires X and Y coordinates or a Point object; some require the size.

Page 19: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-19

Graphics Methods — General Form

DrawLine(Pen, x1Integer, y1Integer, x2Integer, y2Integer) DrawLine(Pen, Point1, Point2)

DrawRectangle(Pen, xInteger, yInteger, widthInteger, heightInteger)DrawRectangle(Pen, Rectangle)

FillRectangle(Brush, xInteger, yInteger, widthInteger, heightInteger)FillRectangle(Brush, Rectangle)

FillEllipse(Brush, xInteger, yInteger, widthInteger, heightInteger)FillEllipse(Brush, Rectangle)

Page 20: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-20

Graphics Methods — Code Example

Private Sub GraphicsForm_Paint(ByVal sender As Object, _ ByVal e As System.Windows.Forms.PaintEventArgs) _ Handles Me.Paint With e.Graphics Dim SmallRectangle as New Rectangle(10, 10, 30, 30).DrawRectangle(Pens.Red, SmallRectangle).DrawLine(Pens.Green, 50, 0, 50, 300)' Draw a blue filled circle.' If the width and height are equal, then the FillEllipse method' draws a circle; otherwise it draws an ellipse..FillEllipse(Brushes.Blue, 100, 100, 50, 50)' Draw a fat blue line..DrawLine(New Pen(Color.Blue, 15), 300, 0, 300, 300)End WithEnd Sub

Page 21: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-21

Selected Methods from the Graphics Class

• Clear( )

• Dispose( )

• DrawArc( )

• DrawLine( )

• DrawEllipse( )

• DrawRectangle( )

• DrawPie( )

• DrawString( )

• FillEllipse( )

• FillPie( )

• FillRectangle( )

See Help for information for all draw and fill methods

Page 22: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-22

Random Numbers

• Random class contains methods to return random numbers of different data types.

• To generate a different series for each run, use an integer value when instantiating an object from the Random class (seeding the random number generator).

• Can use system date to get different seed for each execution of code.

• Generate random numbers using the Random object’s Next method.

Page 23: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-23

The Random.Next Method• General Form

• Examples

' Any positive integer number.Object.Next( )' A positive integer up to the value specified.Object.Next(MaximumValueInteger)' A positive integer in the range specified.Object.Next(MinimumValueInteger, MaximumValueInteger)

' Return an integer in the range 0 – 10.GenerateRandomInteger = GenerateRandom.Next(10)' Return an integer in the range 0 to the width of the form.RandomNumberInteger = GenerateRandom.Next(1, Me.Width)

Page 24: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-24

Simple Animation

• Possible approaches• Display an animated .gif file in a PictureBox.• Replace one graphic with another.• Move a picture.• Rotate through a series of pictures.• Create graphics with various graphics methods.

• On a Web page, display animated .gif files or use a scripting language or Java Applets and avoid round trips to the server.

Page 25: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-25

Displaying an Animated Graphic

• Animation is achieved on either a Windows Form or a Web Form by displaying an animated.gif file.

• Use a PictureBox control on a Windows Form and an Image control on a Web Form.

Page 26: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-26

Controlling Pictures at Run Time

• Pictures can be added or changed at run time.

• To speed execution, load pictures in controls that can be made invisible and set Visible property to True at run time.

• Use the FromFile Method to load a picture at run time.

• Requires file name and path

• Store image files in Bin folder to eliminate need for path.

• To remove a picture from the display, either hide or use the Nothing constant.

Page 27: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-27

Switching Images

• Easy way to show animation is to replace one picture with another.

• Use images (or icons) of similar sizes.

• May use images (or icons) with opposite states (open/closed, on/off, etc.).

Page 28: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-28

Creating Animation

Each of the graphics is placed into the upper picture box when the user clicks the Change button.

Page 29: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-29

Moving a Picture

• Change the Left and Top properties

--OR--, better

• Use the control's SetBounds Method, which produces a smoother-appearing move.

Page 30: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-30

SetBounds Method

• Used to move a control or change its size

• General Form

• Examples

SetBounds(XInteger, YInteger, WidthInteger, HeightInteger)

PlanePictureBox.SetBounds(XInteger, YInteger, PlaneWidthInteger, PlaneHeight)Integer

EnginePictureBox.SetBounds(xInteger, YInteger, WidthInteger, HeightInteger)

Page 31: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-31

The Timer Component (1 of 2)

• Causes events to occur at a set interval with its Tick event

• Useful for animation; move or change an image each time the Tick event occurs

• Sets value at run time or design time

Page 32: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-32

The Timer Component (2 of 2)

• Interval property

• Between 0 and 65,535 milliseconds

• 1,000 milliseconds = 1 second

• Enabled property

• False (default) ==> Do not run Tick event

• True ==> Run Tick event at designated interval

• Tick event

• Occurs each time the Timer's designated interval elapses, if Enabled = True

Page 33: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-33

The Scroll Bar Controls

• Horizontal scroll bars • Vertical scroll bars• Used to scroll through a

document or a window• Used to control items

that have a range of values such as sound level, color, or size

• Can be changed in small or large increments

Page 34: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-34

Scroll Bar Properties (1 of 3)

• Together represent a range of values

• Minimum–Minimum value

• Maximum–Maximum value

• SmallChange–Distance to move when user clicks scroll arrows

• LargeChange–Distance to move when user clicks gray area of scroll

bar or presses Page-Up or Page-Down keys

Page 35: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-35

Scroll Bar Properties (2 of 3)

Gray Area(LargeChange property)

Scroll Box(Value property)

Scroll Arrow(SmallChange property)

Maximum value(Maximum property)

Minimum value(Minimum property)

Page 36: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-36

Scroll Bar Properties (3 of 3)

• Value Property

• Indicates the current position of thescroll box and the corresponding valuewithin the scroll bar

• User clicks up Scroll Arrow.–Value property decreases by the amount of the

SmallChange unless Minimum has been reached.

• User clicks down Scroll Arrow.–Value property increases by the amount of the

SmallChange unless Maximum has been reached.

Page 37: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-37

Scroll Bar Events

• ValueChanged event

• Occurs anytime the Value property changes, by user action or in code

• Scroll event

• Occurs when user drags the scroll box

• As long as user continues to drag scroll box, this event continues to occur.

• Only when user releases scroll box will Scroll event cease and ValueChanged event occur.

Page 38: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-38

The SoundPlayer Component

• Programs play sounds files, called wave files (.wav) using the new My.Computer.Audio.Play

--OR--

• A SoundPlayer component.

• The component’s SoundLocation property gives the location of the file.

Page 39: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-39

Adding Sounds Files

• When using sounds in a project, the best way is to add the files to the project’s resources.

• To refer to the filename in code, use “My.Resources.Filename”

Page 40: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-40

A Sound-Playing Program

• Users can choose to play one of the preselected sounds or select a file to play.

• File types are restricted using the filter property.

Page 41: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-41

Drag-and-Drop Programming (1 of 2)

• Often, Windows users use drag-and-drop events rather than selecting a menu item or pressing a button.

• Drag-and-drop programming requires that a user begin the drag-drop with a MouseDown event.

• Determine the effect of the drop with a DragEnter event.

• The event that holds the code for the drop is the DragDrop event.

Page 42: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-42

Drag-and-Drop Programming (2 of 2)

The Source object is dragged to the Target object in a drag-and-drop operation.

Page 43: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-43

The Source Object

• The item chosen to drag

• With .NET programming, begin a drag-drop operation by setting the source object using a control’s DoDragDrop method.

• The DragDrop effect specifies the requested action; choices include DragDropEffects.Copy, DragDropEffects.Move, and DragDropEffects.None.

• General Form Example

ObjectName.DoDragDrop(DataToDrag, DesiredDragDropEffect)

Page 44: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-44

The Target Object

• Location at which a user releases the mouse, a drop, is the target.

• Forms may have multiple targets.

• To set a control to be a target, set its AllowDrop property to True.

• Target control needs

• DragEnter procedure that sets the effect

• DragDrop event procedure that executes the action to take and when the drop takes place

Page 45: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-45

The DragEnter Event

• When a user drags a source object over the target, the target control’s DragEnter event fires.

• The argument is defined as DragEventArgs, which has special properties for the drag operation.

Page 46: Chapter 13 Graphics, Animation, Sound, and Drag-and-Drop Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

13-46

The DragDrop Event

• Statements to perform additional functions are added to the DragDrop event.

• Data that is being dragged is contained in the Data property of the argument of the DragDrop event procedure.

• Retrieve the dragged data using the GetData method of the Data object.

• Format the data or use a predefined clipboard data format.