!

Dette materialet blir ikke lenger vedlikeholdt. Du vil finne oppdatert materiale på siden: http://borres.hiof.no/wep/

Javascript
canvas
HTML5
Børre Stenseth
HTML > Canvas >Interaktiv

Interaktiv Canvas

Hva
Interaktiv canvas

Noen enkle interaktiv canvasløsninger som tegner ut en ball og en Bezier kurve med 4 kontrollpunkter, på to forskjellige måter. Løsningene er basert på KINETICSJS [1] og er inspirert av en serie eksempler i HTML5CanvasTutorials [2]

Enkel ball

Interaksjon i canvas er realisert ved hjelp av KINETICSJS [1] .

Flytt ballen med musa.

Javascriptet:

_kule.js

Bezier

Flytt kontrollpunktene med musa

Uttrykt ved kontrollpunktene og en parameter, t, som løper mellom 0 og 1, kan vi beskrive et punkt på en kubisk Bezierkurve slik:

P(t)=(1-t)3P0+ 3t(1-t)2P1 + 3t2(1-t)P2 + t3P3

Canvas elementet har en ferdig rutiner for å tegne Bezierfunksjoner.

Javascript som administrerer controlpunkter. Et Point-objekt og en renderingrutine som tegner et punkt som en region og tilordner eventhandlere.

_point.js

Javascript som startes når canvas er lastet og som setter opp det hele

_bezier.js

De Casteljau algoritmen

Flytt kontrollpunktene eller dra slideren for å endre t

Casteljau algoritmen tar utgangspunkt i en lineær Bezier funksjon og anvender denne til å dele opp linjene mellom kontrollpunktene.

1
P(t)=(1-t)P0+tP1 
	
2
  
A(t)=(1-t)P0+tP1
B(t)=(1-t)P1+tP2

P(t)=(1-t)A(t)+tB(t)
P(t)=(1-t)2P0+2t(1-t)P1+t2P2
	
1
A(t)=(1-t)P0+tP1
B(t)=(1-t)P1+tP2
C(t)=(1-t)P2+tP3

D(t)=(1-t)A(t)+tB(t)
E(t)=(1-t)B(t)+tC(t)

P(t)=(1-t)D(t)+tE(t)
P(t)=(1-t)3P0+3t(1-t)2P1+3t2(1-t)P2+t3P3

Javascriptet som setter opp canvas er nå slik:

_casteljau.js

Slideren er handtert slik:

_slider.js
Referanser
  1. Canvas Animation, Interactivity, WebGL KINETICJS www.kineticjs.com/ 02-10-2011
  1. Canvas html5canvastutorials.com www.html5canvastutorials.com/ 02-10-2011
Vedlikehold

B. Stenseth, oktober 2011

( Velkommen ) HTML > Canvas >Interaktiv ( Pixler )