+ All Categories
Home > Documents > 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

Date post: 20-Dec-2015
Category:
View: 218 times
Download: 3 times
Share this document with a friend
Popular Tags:
23
1 Canvas Tag Canvas Tag In In JavaScript JavaScript Amy Luong Amy Luong Yan Ge Yan Ge Hon Yee Hon Yee Regneel Regneel Prahalad Prahalad Michael Michael Leggio Leggio
Transcript
Page 1: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

11

Canvas Tag In Canvas Tag In JavaScriptJavaScript

Amy LuongAmy LuongYan GeYan GeHon YeeHon YeeRegneel Regneel PrahaladPrahalad

Michael LeggioMichael Leggio

Page 2: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

22

Topics of DiscussionTopics of Discussion

What is the Canvas tag?What is the Canvas tag?HistoryHistoryAdvantages/DisadvantagesAdvantages/DisadvantagesThe Future/Who is using The Future/Who is using

it ?it ?Working Demo and Working Demo and

MechanicsMechanics

Page 3: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

33

What do these graphics have in What do these graphics have in common?common?

QuickTime™ and aTIFF (Uncompressed) decompressor

are needed to see this picture.

Page 4: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

44

What in the world is a <Canvas> What in the world is a <Canvas> Tag??Tag??

HTML tag used to create 2D/3D graphicsHTML tag used to create 2D/3D graphicsNotion of an ”Image that you can paint Notion of an ”Image that you can paint

on"  programmatically.on"  programmatically.Scripting language (Javascript) is used Scripting language (Javascript) is used INTERACTIVEINTERACTIVEAllows for DYNAMICALLY generated Allows for DYNAMICALLY generated

graphics in real-timegraphics in real-timeGraphs, Animations, ImagesGraphs, Animations, Images

Page 5: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

55

      GAMES!!GAMES!!

Richer client-side web Richer client-side web appsapps

Smaller, Leaner, Faster!Smaller, Leaner, Faster!More integrated in  your More integrated in  your

environmentenvironment

What in the world is a <Canvas> What in the world is a <Canvas> Tag??Tag??

Page 6: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

66

History Of The Canvas History Of The Canvas Tag  Tag  

Originally introduced by Apple computer, IncOriginally introduced by Apple computer, IncFirst implemented in Mac OS X 10.4(Tiger)  First implemented in Mac OS X 10.4(Tiger)  Dashboard (WIDGETS)Dashboard (WIDGETS)

QuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.

QuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.

QuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.

QuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.

QuickTime™ and aTIFF (Uncompressed) decompressor

are needed to see this picture.

Page 7: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

77

Apple Safari browserApple Safari browserMozilla and Firefox(Gecko)Mozilla and Firefox(Gecko)The <canvas> element is part of the The <canvas> element is part of the

WhatWG Web  applications 1.0 WhatWG Web  applications 1.0 specification (HTML 5).specification (HTML 5).

RequirementsRequirementsSafari 2+          (April 2005)Safari 2+          (April 2005)Firefox 1.5+      (Nov 2005)Firefox 1.5+      (Nov 2005)Opera 9+          (April 2006) <-- 7 Opera 9+          (April 2006) <-- 7

months agomonths ago

Page 8: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

88

Hey! What about IE? Hey! What about IE?

Why no Internet Explorer?Why no Internet Explorer?Not natively supported by IENot natively supported by IEMicrosoft does not comply with WhatWG Microsoft does not comply with WhatWG Only with WC3.Only with WC3.

GOOGLE is currently involved in a project to GOOGLE is currently involved in a project to add the canvas abilities to IE.add the canvas abilities to IE.

              http://sourceforge.net/projects/excanvashttp://sourceforge.net/projects/excanvas

Page 9: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

99

AdvantagesAdvantages

Ease of useEase of use It is simply a markup tag that is It is simply a markup tag that is

embedded in html, and uses the same embedded in html, and uses the same attributes as the image tag (with the attributes as the image tag (with the exception of the src attribute).exception of the src attribute).

Small learning curveSmall learning curveLittle to no cost for training.Little to no cost for training. Implementable immediately Implementable immediately

Page 10: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

1010

AdvantageAdvantagess

Low costLow cost Open sourceOpen source No need to purchase more expensive No need to purchase more expensive

packages such as Flash, Shockwave, packages such as Flash, Shockwave, Lightwave, Maya, etc.Lightwave, Maya, etc.

Implements both static displays (graphs) and Implements both static displays (graphs) and dynamic displays (animations, visualizations, dynamic displays (animations, visualizations, and games). and games).

Comes with a context (rotation, location, Comes with a context (rotation, location, transformation), and a number of built-in transformation), and a number of built-in methods.methods. Allows for rapid alterations of a scene Allows for rapid alterations of a scene

without resorting to the costly DOM without resorting to the costly DOM manipulation. manipulation.

Makes it possible to compose complex Makes it possible to compose complex shapesshapes

Page 11: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

1111

AdvantagesAdvantages

Has both 2D and 3D rendering Has both 2D and 3D rendering capabilities. capabilities. 3D capabilities of the <canvas> tag are a 3D capabilities of the <canvas> tag are a

very recent development. Such a tag brings very recent development. Such a tag brings us back to one of the original promises of us back to one of the original promises of web-based 3D, that is, it can be handled as web-based 3D, that is, it can be handled as easily as HTML.easily as HTML.

Offers the opportunity for developers not Offers the opportunity for developers not familiar with higher-end graphics tools to add familiar with higher-end graphics tools to add graphical texture to their pages.graphical texture to their pages.

Page 12: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

1212

DisadvantagesDisadvantages

The entire page must be redrawn when a The entire page must be redrawn when a change is made. change is made.

Code can be quite extensive without the use of Code can be quite extensive without the use of libraries.libraries.

The Canvas context lacks support for text The Canvas context lacks support for text rendering.rendering.

Page 13: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

1313

DisadvantagesDisadvantages

Limited browser support (currently Firefox Limited browser support (currently Firefox 1.5 and Safari1.5 and Safari There are packages that provide workarounds There are packages that provide workarounds

for this in IE.for this in IE.

Unlike Unlike SVGSVG (Scalable Vector Graphics), (Scalable Vector Graphics), canvas supports only one primitive shape, canvas supports only one primitive shape, which is the rectangle. All other shapes which is the rectangle. All other shapes must be created by combining one or more must be created by combining one or more path.path.

Page 14: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

1414

Future/Who’s UsingFuture/Who’s Using

Due to increasing demand we will likely see Due to increasing demand we will likely see the addition of text rendering capabilities, as the addition of text rendering capabilities, as well as a much broader scope of browser well as a much broader scope of browser support.support.

Currently being used at the grass roots level Currently being used at the grass roots level of the web development communityof the web development community However with Google now on board and a However with Google now on board and a

working group having been created to establish working group having been created to establish standards, this will very likely change.standards, this will very likely change.

Page 15: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

1515

““The trend is clear: smaller, leaner, faster to startup, The trend is clear: smaller, leaner, faster to startup, more integrated in your environment (means real more integrated in your environment (means real event interoperation with the page!), easier for event interoperation with the page!), easier for DHTML designers to understand. This leads me to DHTML designers to understand. This leads me to think that <canvas> is going to be huge. “think that <canvas> is going to be huge. “

““Thank you, little <canvas> tag, you'll be teaching a Thank you, little <canvas> tag, you'll be teaching a lot of lessons to a lot of people and you'll be making lot of lessons to a lot of people and you'll be making my rich-webapp-developer life easier.”my rich-webapp-developer life easier.”

It's the <img> tag, over again: "simplest thing that It's the <img> tag, over again: "simplest thing that can possibly work" vs. "design by committee".can possibly work" vs. "design by committee".

Future/ Who's UsingA Blogger's Point of View

Stefano Mazzocchi

Page 16: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

1616

Basic Canvas Drawing Basic Canvas Drawing FunctionsFunctions

Drawing a Rectangle Drawing a Rectangle fillRect(x,y,width,height) : Draws a filled rectanglefillRect(x,y,width,height) : Draws a filled rectangle

Drawing a Line Drawing a Line lineTo(x, y); lineTo(x, y);

Drawing Angles Drawing Angles arc(x, y, radius, startAngle, endAngle, arc(x, y, radius, startAngle, endAngle, anticlockwise) anticlockwise)

Drawing a Quadractic Curve Drawing a Quadractic Curve quadraticCurveTo(cp1x, cp1y, x, y) quadraticCurveTo(cp1x, cp1y, x, y)

Page 17: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

1717

Simple ExampleSimple Examplecanvas.beginPath();

canvas.arc(75,75,50,0,Math.PI*2,true); // Outer circle

canvas.moveTo(110,75);

canvas.arc(75,75,35,0,Math.PI,false); // Mouth (clockwise)

canvas.moveTo(65,65);

canvas.arc(60,65,5,0,Math.PI*2,true); // Left eye

canvas.moveTo(95,65);

canvas.arc(90,65,5,0,Math.PI*2,true); // Right eye

canvas.stroke();

Page 18: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

1818

ImplementationImplementation  <script type="text/javascript">

function draw(){

var canvas = document.getElementById('myCanvas');

if (canvas.getContext){ var ctx = canvas.getContext('2d');

canvas.beginPath(); ….

} }

</script>

Page 19: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

1919

ImplementationImplementationSpecifying StyleSpecifying Style

<style type="text/css"> <style type="text/css">      canvas { border: 1px solid black; }      canvas { border: 1px solid black; }

</style></style>

Canvas tag in HTML: Canvas tag in HTML: <BODY onload="draw();"> <BODY onload="draw();">

<h1>This is my canvas</h1> <h1>This is my canvas</h1> <canvas id="myCanvas" width="172"<canvas id="myCanvas" width="172"

height="172"></canvas>height="172"></canvas></BODY> </BODY>

Page 20: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

2020

Page 21: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

2121

Business ExampleBusiness ExampleCanvas can serve as a great tool for the visualization of corporate data.

Page 22: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

2222

Fun Canvas ExamplesFun Canvas Examples 3D first person shooter 3D first person shooter

http://www.abrahamjoffe.com.au/ben/cahttp://www.abrahamjoffe.com.au/ben/canvascape/nvascape/

3D boxes 3D boxes

http://matt.west.co.tt/files/canvastastic/canhttp://matt.west.co.tt/files/canvastastic/canvastastic_beta_1/eg/boxes.htmlvastastic_beta_1/eg/boxes.html

Painting Painting http://http://caimansys.comcaimansys.com/painter/ /painter/

Page 23: 1 Canvas Tag In JavaScript Amy Luong Yan Ge Hon Yee Regneel Prahalad Michael Leggio.

2323

EndEnd


Recommended