Advertisement
Guest User

Untitled

a guest
May 6th, 2015
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.82 KB | None | 0 0
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <title> Tiny Palms </title>
  5. <link rel="stylesheet" type="text/stylesheet" href="style.css">
  6. <style>
  7. #content{
  8. width : 500px;
  9. margin : 0 auto;
  10. }
  11. </style>
  12. </head>
  13. <body>
  14. <div id="content">
  15. <canvas id="myCanvas"></canvas>
  16. </div>
  17. <script>
  18.  
  19. var canvas = document.getElementById('myCanvas');
  20. var context = canvas.getContext('2d');
  21.  
  22. canvas.width = 500;
  23. canvas.height = 500;
  24.  
  25. function Point(x,y){
  26. this.x = x || 0;
  27. this.y = y || 0;
  28. }
  29.  
  30. context.fillStyle = '#0a8';
  31. context.fillRect(0,0,canvas.width,canvas.height);
  32.  
  33. function drawEyes(eyePosX,eyePosY,height,width){
  34. context.fillStyle = '#000';
  35. context.strokeStyle = '#000';
  36. context.beginPath();
  37. context.moveTo(eyePosX,eyePosY);
  38. context.bezierCurveTo(eyePosX,eyePosY-height,eyePosX+width,eyePosY-height,eyePosX+width,eyePosY)
  39. context.moveTo(eyePosX,eyePosY);
  40. context.bezierCurveTo(eyePosX,eyePosY+height,eyePosX+width,eyePosY+height,eyePosX+width,eyePosY);
  41. context.stroke();
  42. context.fill();
  43. }
  44.  
  45. function drawLips(midpoint, width, upperHeight, lowerHeight){
  46. var point1 = new Point(midpoint.x-width,midpoint.y);
  47. var point2 = new Point(midpoint.x+width,midpoint.y);
  48.  
  49. context.fillStyle = '#a44'
  50.  
  51. context.beginPath();
  52. context.moveTo(point1.x,point1.y);
  53. context.bezierCurveTo(point1.x,point1.y-upperHeight,point2.x,point2.y-upperHeight,point2.x,point2.y);
  54.  
  55. context.moveTo(point1.x,point1.y);
  56. context.bezierCurveTo(point1.x,point1.y+lowerHeight,point2.x,point2.y+lowerHeight,point2.x,point2.y);
  57.  
  58. //context.stroke();
  59. context.fill();
  60. }
  61.  
  62. function drawFace(point1, point2, h, eyeHeight){
  63. //drawGuideLines
  64. var width = point2.x-point1.x;
  65. var increment = h/3;
  66. var widthIncrement = width/3;
  67.  
  68. //compute Face Handles
  69. var P = [];
  70. P[0] = new Point(point1.x-30*Math.random(), point1.y-30*Math.random());
  71. P[1] = new Point(point1.x-30*Math.random(), point1.y-30*Math.random());
  72. P[2] = new Point(point2.x+30*Math.random(), point2.y-30*Math.random());
  73. P[3] = new Point(point2.x+30*Math.random(), point2.y-30*Math.random());
  74.  
  75. P[4] = new Point(point2.x+30*Math.random(), point2.y+h+30*Math.random());
  76. P[5] = new Point(point2.x+30*Math.random(), point2.y+h+30*Math.random());
  77. P[6] = new Point(point1.x+30*Math.random(), point1.y+h+30*Math.random());
  78. P[7] = new Point(point1.x+30*Math.random(), point1.y+h+30*Math.random());
  79.  
  80.  
  81. //Really Draw FaceLines
  82. context.beginPath();
  83. context.strokeStyle='#000';
  84. context.moveTo(point1.x,point1.y)
  85. context.bezierCurveTo(P[1].x,P[1].y,P[2].x,P[2].y,point2.x,point2.y);
  86.  
  87. context.moveTo(point2.x,point2.y);
  88. context.bezierCurveTo(P[3].x,P[3].y,P[4].x,P[4].y,point2.x,point2.y+h);
  89.  
  90. context.moveTo(point2.x, point2.y+h);
  91. context.bezierCurveTo(P[5].x,P[5].y,P[6].x,P[6].y,point1.x,point1.y+h);
  92.  
  93. context.moveTo(point1.x,point1.y+h);
  94. context.bezierCurveTo(P[7].x,P[7].y,P[0].x,P[0].y,point1.x,point1.y);
  95. context.stroke();
  96.  
  97. drawEyes(point1.x+widthIncrement,point1.y+increment,eyeHeight,20);
  98. drawEyes(point2.x-widthIncrement,point2.y+increment,eyeHeight,20);
  99.  
  100. var lipPoint = new Point(point1.x+9*width/16, point1.y+4*h/5);
  101.  
  102. drawLips(lipPoint,10+30*Math.random(),15*Math.random(),15*Math.random());
  103. }
  104.  
  105. var point1 = new Point(150,100);
  106. var point2 = new Point(350,100);
  107. var eyeHeight = 20;
  108. var temp = 20;
  109.  
  110. drawFace(point1, point2, 200, eyeHeight);
  111.  
  112. document.addEventListener('click',function(){
  113. var interval = setInterval(function(){
  114. context.fillStyle = '#0a8';
  115. context.fillRect(0,0,canvas.width,canvas.height);
  116. drawFace(point1, point2, 200, temp);
  117.  
  118. if(temp<1){
  119. temp=20;
  120. drawFace(point1, point2, 200, temp);
  121. clearInterval(interval);
  122. }else{
  123. temp-=5;
  124. }
  125. },33);
  126. });
  127.  
  128. </script>
  129. </body>
  130. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement