Slide 1

Slide 1 text

Canvas Ivano Malavolta Ivano Malavolta [email protected] http://www.di.univaq.it/malavolta

Slide 2

Slide 2 text

Roadmap • Intro • Colors & Style • Colors & Style • Drawings • Images & Pixels • Transformations • Text • Text • Compositing • Animations

Slide 3

Slide 3 text

Canvas Canvas allows you to draw anything inside the browser http://bit.ly/Ie4HKu http://bit.ly/LUKXkr http://bit.ly/LULa79 http://bit.ly/LC8AgY

Slide 4

Slide 4 text

Canvas It uses nothing more than JavaScript and HTML no external plugins, no libraries, etc. no external plugins, no libraries, etc. You can create lines, use images, use text, apply transformations, etc. http://bit.ly/KsKLv1

Slide 5

Slide 5 text

Canvas A canvas is a rectangular area, where you can control every pixel using JavaScript Returns a string Returns a string representing an encoded URL containing the grabbed graphical data

Slide 6

Slide 6 text

Coordinate System Canvas uses the standard screen coordinate system http://bit.ly/KsNip6

Slide 7

Slide 7 text

toDataUrl() image/png

Slide 8

Slide 8 text

Context It is the built-in Javascript object for the canvas HTML element It has methods to draw lines, 2D or WebGL available contexts It has methods to draw lines, boxes, circles, and more push state on state stack pop state from the stack and restore it

Slide 9

Slide 9 text

Roadmap • Intro • Colors & Style • Colors & Style • Drawings • Images & Pixels • Transformations • Text • Text • Compositing • Animations

Slide 10

Slide 10 text

Colors & Style we can style any shape within the canvas

Slide 11

Slide 11 text

Colors & Style the distance between the inner corner and the outer corner in a line

Slide 12

Slide 12 text

Colors & Style you can use this objects as a value to strokeStyle or fillStyle creates a pattern from an image from an image [repeat | repeat-x | repeat-y | no-repeat] Specifies the gradient's position and color

Slide 13

Slide 13 text

Gradient Example

Slide 14

Slide 14 text

Roadmap • Intro • Colors & Style • Colors & Style • Drawings • Images & Pixels • Transformations • Text • Text • Compositing • Animations

Slide 15

Slide 15 text

Drawing Rectangles All pixels inside this area will be erased Creates a filled rectangle Creates an empty rectangle

Slide 16

Slide 16 text

Drawing Complex Shapes A complex shape is represented by a Path Path Path Path, where a path is a list of subpaths path is a list of subpaths Subpaths Subpaths Subpaths Subpaths are one or more points connected by straight or curved lines The rendering context has always a current path http://bit.ly/KsSc5q

Slide 17

Slide 17 text

Paths Starts a new path, or clears the current path Creates a line from the last point to the first point Fills the current path Fills the current path with the selected color Draws the path on the canvas Creates an area in the canvas, and this area is the only visible area in the canvas

Slide 18

Slide 18 text

Paths (continued) Moves the path to the specified point (x,y), without creating a line Creates a line from the last point in the path to the given point (x,y) Creates a quadratic curve Creates a quadratic curve from the current point in the path to the specified point (x,y) Creates a Bezier curve from the current point in the path to the specified point (x,y)

Slide 19

Slide 19 text

Paths (continued) Creates an arc between two points draws along a circle creates a rectangle checks if the given point is in the path

Slide 20

Slide 20 text

Examples

Slide 21

Slide 21 text

Roadmap • Intro • Colors & Style • Colors & Style • Drawings • Images & Pixels • Transformations • Text • Text • Compositing • Animations

Slide 22

Slide 22 text

Images draw the image, and specify the width and height clip the image, draw it, and specify the width and specify the width and height

Slide 23

Slide 23 text

Pixels Creates an empty imagedata object with the given dimensions Creates a new imagedata object, containing data from the canvas Draws imagedata onto the canvas (optionally, you can specify which part of the imageData you want to put)

Slide 24

Slide 24 text

Pixels

Slide 25

Slide 25 text

Roadmap • Intro • Colors & Style • Colors & Style • Drawings • Images & Pixels • Transformations • Text • Text • Compositing • Animations

Slide 26

Slide 26 text

Transformations scale the canvas, based on width and height (also positioning is scaled) rotate the canvas, based on the angle (in radians) move the canvas horizontally and vertically this is not relative to past transforms

Slide 27

Slide 27 text

A word on radians A Radian Radian Radian Radian is the ratio between the length of an arc and its radius its radius x degrees = x * PI/180

Slide 28

Slide 28 text

Roadmap • Intro • Colors & Style • Colors & Style • Drawings • Images & Pixels • Transformations • Text • Text • Compositing • Animations

Slide 29

Slide 29 text

Text draws text on the canvas, and fills it with the color set by the fillStyle attribute attribute draws text on the canvas, without filling, using the color of the strokeStyle strokeStyle attribute measures the given text string (returns the result in pixels)

Slide 30

Slide 30 text

Text sets the font (same syntax of CSS) align text on the canvas canvas vertical alignment of the text

Slide 31

Slide 31 text

Roadmap • Intro • Colors & Style • Colors & Style • Drawings • Images & Pixels • Transformations • Text • Text • Compositing • Animations

Slide 32

Slide 32 text

Compositing transparency transparency of the drawings how drawings are how drawings are positioned onto the canvas

Slide 33

Slide 33 text

Roadmap • Intro • Colors & Style • Colors & Style • Drawings • Images & Pixels • Transformations • Text • Text • Compositing • Animations

Slide 34

Slide 34 text

Animations determines the optimal FPS for our optimal FPS for our animation

Slide 35

Slide 35 text

References http://www.w3schools.com/html5/html5_ref_canvas.asp http://www.nihilogic.dk/labs/canvas_sheet/HTML5_Canvas_Cheat_Sheet.pdf