function reflectMain(mode){this.version='0.81';this.mode=typeof mode!=='undefined'?mode:'rect';console.log('this.mode',this.mode)
w=400;h=480;var canvasTop=80;this.canvasH=(h-canvasTop);var s="";s+='
';s+='
';s+='
Next Shape';s+='
';s+='
';s+='
© 2015 MathsIsFun.com v'+this.version+'
';s+='
';document.write(s);el=document.getElementById('canvasId');el.style.border="1px solid black";ratio=2;el.width=w*ratio;el.height=(h-canvasTop)*ratio;el.style.width=w+"px";el.style.height=(h-canvasTop)+"px";g=el.getContext("2d");g.setTransform(ratio,0,0,ratio,0,0);this.midX=200;this.midY=200;this.scale=0.044;this.radius=110;this.frame=0;this.clrs=["#8888ff","#ffff00","#ff9900","#660066","#00ff00","#99ff00","#0099ff","#00ff99","#9900ff","#ff0099","#006666","#666600","#990000","#009999","#999900","#003399","#ff00ff","#993333","#330099"];this.ptss=[[new Point(120,-90),new Point(10,-50),new Point(90,0)],[new Point(120,-60),new Point(100,-100),new Point(-20,-40),new Point(0,0)],[new Point(0,0),new Point(130,0),new Point(130,-30),new Point(30,-30),new Point(30,-90),new Point(0,-90)],[new Point(60,-40),new Point(120,-40),new Point(140,-90),new Point(90,-130),new Point(40,-90)]];this.ptsNo=0;this.pts=this.ptss[this.ptsNo];this.sttPts=[];this.ctrX=30;this.ctrY=40;this.linesQ=false;toggleLines();this.typ='vert';setType();el.addEventListener("touchmove",ontouchmove,false);el.addEventListener("mousemove",onmouseMove,false);g.drawGrid();update();}
function ontouchstart(evt){var touch=evt.targetTouches[0];evt.clientX=touch.clientX;evt.clientY=touch.clientY;evt.touchQ=true;onmouseDown(evt)}
function ontouchmove(evt){var touch=evt.targetTouches[0];evt.clientX=touch.clientX;evt.clientY=touch.clientY;evt.touchQ=true;onmouseMove(evt);evt.preventDefault();}
function ontouchend(evt){el.addEventListener('touchstart',ontouchstart,false);window.removeEventListener("touchend",ontouchend,false);window.removeEventListener("touchmove",ontouchmove,false);}
function onmouseDown(evt){var bRect=el.getBoundingClientRect();var mouseX=(evt.clientX-bRect.left)*(el.width/ratio/bRect.width);var mouseY=(evt.clientY-bRect.top)*(el.height/ratio/bRect.height);if(evt.preventDefault){evt.preventDefault();}
else if(evt.returnValue){evt.returnValue=false;}
return false;}
function onmouseMove(evt){var bRect=el.getBoundingClientRect();var mouseX=(evt.clientX-bRect.left)*(el.width/ratio/bRect.width);var mouseY=(evt.clientY-bRect.top)*(el.height/ratio/bRect.height);showReflect(mouseX,mouseY);}
function setType(){var buttons=document.getElementsByName('typ');for(var i=0;i=0&&frame<200){drawShape(frame);var n=(pts.length/200)*frame;drawMoves(n,dx,dy);}
if(this.polarQ){var ddx=dx/100.;var ddy=dy/100.;}else{ddx=this.ctrX/100;ddy=this.ctrY/100;}
var moveFrames=100;if(frame>=200&&frame<(200+moveFrames)){drawMoves(pts.length,dx,dy);moveShape(ddx,ddy);drawShape(frame);}
if(frame>=(200+moveFrames)&&frame<(300+moveFrames)){drawMoves(pts.length,dx,dy);drawShape(frame);}
if(frame>=(300+moveFrames)){drawShape(frame);togglePlay();this.frame=0;}}
function drawShape(reflect){reflectQ=typeof reflect!=='undefined';if(reflectQ){alpha=0.15;g.strokeStyle='steelblue';}else{alpha=0.3;g.strokeStyle='blue';}
g.fillStyle='rgba(255,0,255,0.2)';g.fillStyle=convertHexClr(this.clrs[this.ptsNo],alpha);g.lineWidth=1;g.beginPath();for(var i=0,len=pts.length;i