Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.38 KB | None | 0 0
  1. window.addEventListener("load", dessiner);
  2.  
  3. var vache2;
  4. var timerVache;
  5. var p1x=10,p1y=10,p2x=10,p2y=10,p3x=10,p3y=10;
  6. var Dt=200;
  7. var d1x=5,d1y=5;
  8. var d2x=10,d2y=10;
  9. var d3x=7,d3y=7;
  10. var xMin,xMax,yMin,yMax;
  11. var distV=8000;
  12. var distOk1=false;
  13. var distOk2=false;
  14. var distOk3=false;
  15.  
  16. function dessiner() {
  17. // descriptions globales
  18. ctx_haut = 850; // hauteur du canvas en point
  19. ctx_larg = 1200; // largeur du canvas en point
  20. var cv=document.getElementById("monDessin"); // cv représente l'objet canvas
  21. var ctx=cv.getContext("2d"); // ctx représente la surface dessinée
  22. activerHorloge("idDivHorloge",100,"engrenage.png",20,20);
  23. vache2 = vache1.cloneNode();
  24. vache2.setAttribute("id","vache2");
  25. document.body.appendChild(vache2);
  26. vache2.left=800;
  27. idDivHorloge.left=800;
  28. var pos=getPosition(monDessin);
  29. xMin=pos.x;
  30. yMin=pos.y;
  31. xMax=xMin+ctx_larg-vache1.width+40;
  32. yMax=yMin+ctx_haut-vache1.height+20;
  33. timerVache=setInterval(moveVache,20);
  34.  
  35. // dimensionnement des éléments
  36. cv.height=ctx_haut; // hauteur canvas
  37. cv.width=ctx_larg; // largeur canvas
  38. ctx.width=ctx_larg;
  39. ctx.height=ctx_haut;
  40. ctx.beginPath(); // début de trace
  41. ctx.globalAlpha = 1; // transparence pour fusion douce des couleurs
  42. ctx.fillStyle="#000000"; // couleur (ici noir)
  43. ctx.strokeStyle="#000000"; // couleur du trait
  44. ctx.lineCap="round"; // forme des extrémités
  45. ctx.lineJoin="round"; // forme des raccords
  46. ctx.lineWidth = 24; // épaisseur du trait
  47.  
  48. var choix1=prompt("Choix du dessin (1 à 6)");
  49. switch (choix1) {
  50. case "1" :
  51. ctx.moveTo(400,200);
  52. ctx.lineTo(800,200);
  53. ctx.arc(800,400,200,Math.PI*1.5,Math.PI*0.5);
  54. ctx.lineTo(400,600);
  55. ctx.arc(400,400,200,Math.PI*0.5,Math.PI*1.5);
  56. break;
  57.  
  58. case "2" :
  59. ctx.moveTo(200,800);
  60. ctx.bezierCurveTo(550,250,650,250,1000,800);
  61. ctx.moveTo(200,800);
  62. ctx.bezierCurveTo(-300,100,1500,100,1000,800);
  63. break;
  64.  
  65. case "3" :
  66. ctx.moveTo(400,400);
  67. ctx.bezierCurveTo(0,200,0,800,400,600);
  68. ctx.lineTo(800,400);
  69. ctx.bezierCurveTo(1200,200,1200,800,800,600);
  70. ctx.lineTo(400,400);
  71. break;
  72.  
  73. case "4" :
  74. ctx.moveTo(300,200);
  75. ctx.bezierCurveTo(700,750,500,750,900,200);
  76. ctx.moveTo(300,200);
  77. ctx.bezierCurveTo(200,25,1000,25,900,200);
  78. ctx.moveTo(475,150);
  79. ctx.arc(475,200,50,Math.PI*1.5,Math.PI*1.499);
  80. ctx.moveTo(725,150);
  81. ctx.arc(725,200,50,Math.PI*1.5,Math.PI*1.499);
  82. ctx.moveTo(475,350);
  83. ctx.bezierCurveTo(600,475,600,475,725,350);
  84. break;
  85.  
  86. case "5" :
  87. var choix2=prompt("Choix de la taille du bateau (de 1 à 100)");
  88. if(choix2<101){
  89. var s=choix2;
  90. ctx.lineWidth=s/5;
  91. ctx.moveTo(6*s,1*s);
  92. ctx.lineTo(3*s,6*s);
  93. ctx.lineTo(8*s,6*s);
  94. ctx.lineTo(6*s,2*s);
  95. ctx.moveTo(6*s,1*s);
  96. ctx.lineTo(6*s,7*s);
  97. ctx.moveTo(1*s,7*s);
  98. ctx.lineTo(10*s,7*s);
  99. ctx.lineTo(9*s,8*s);
  100. ctx.lineTo(2*s,8*s);
  101. ctx.lineTo(1*s,7*s);
  102. }else{
  103. alert("Trop grande taille !");
  104. }
  105. break;
  106.  
  107. case "6" :
  108. ctx.lineWidth=3;
  109. var rouge=255;
  110. var vert=0;
  111. for(var x=0;x<128;x+=1){
  112. ctx.strokeStyle="rgba("+rouge+","+vert+",0,0.7)";
  113. ctx.arc(600,850,455-x,Math.PI,0);
  114. ctx.stroke();
  115. rouge-=2;
  116. vert+=2;
  117. ctx.beginPath();
  118. }
  119. var bleu=0;
  120. for(var x=0;x<128;x+=1){
  121. ctx.strokeStyle="rgba(0,"+vert+","+bleu+",0.7)";
  122. ctx.arc(600,850,327-x,Math.PI,0);
  123. ctx.stroke();
  124. vert-=2;
  125. bleu+=2;
  126. ctx.beginPath();
  127. }
  128. break;
  129. default : alert("Mauvais choix !");
  130. }
  131. ctx.stroke();
  132. }
  133.  
  134.  
  135. function moveVache(){
  136. if(p1x+d1x>xMax){
  137. p1x=2*xMax-d1x-p1x;
  138. d1x=-d1x;
  139. }else{
  140. if (p1x+d1x<0){
  141. p1x=-(p1x+d1x);
  142. d1x=-d1x;
  143. }else{
  144. p1x+=d1x;
  145. }
  146. }
  147. if(p2x+d2x>xMax){
  148. p2x=2*xMax-d2x-p2x;
  149. d2x=-d2x;
  150. }else{
  151. if (p2x+d2x<0){
  152. p2x=-(p2x+d2x);
  153. d2x=-d2x;
  154. }else{
  155. p2x+=d2x;
  156. }
  157. }
  158. if(p3x+d3x>xMax){
  159. p3x=2*xMax-d3x-p3x;
  160. d3x=-d3x;
  161. }else{
  162. if (p3x+d3x<0){
  163. p3x=-(p3x+d3x);
  164. d3x=-d3x;
  165. }else{
  166. p3x+=d3x;
  167. }
  168. }
  169. if(p1y+d1y>yMax){
  170. p1y=2*yMax-d1y-p1y;
  171. d1y=-d1y;
  172. }else{
  173. if (p1y+d1y<0){
  174. p1y=-(p1y+d1y);
  175. d1y=-d1y;
  176. }else{
  177. p1y+=d1y;
  178. }
  179. }
  180. if(p2y+d2y>yMax){
  181. p2y=2*yMax-d2y-p2y;
  182. d2y=-d2y;
  183. }else{
  184. if (p2y+d2y<0){
  185. p2y=-(p2y+d2y);
  186. d2y=-d2y;
  187. }else{
  188. p2y+=d2y;
  189. }
  190. }
  191. if(p3y+d3y>yMax){
  192. p3y=2*yMax-d3y-p3y;
  193. d3y=-d3y;
  194. }else{
  195. if (p3y+d3y<0){
  196. p3y=-(p3y+d3y);
  197. d3y=-d3y;
  198. }else{
  199. p3y+=d3y;
  200. }
  201. }
  202.  
  203. if (((p1x-p2x)*(p1x-p2x)+(p1y-p2y)*(p1y-p2y))<distV&&distOk1===false){
  204. distOk1=true;
  205. if (d1x*d2x<0){
  206. d1x=-d1x; d2x=-d2x;
  207. }
  208. if (d1y*d2y<0){
  209. d1y=-d1y; d2y=-d2y;
  210. }
  211. }
  212. if (((p1x-p2x)*(p1x-p2x)+(p1y-p2y)*(p1y-p2y))>distV){
  213. distOk1=false;
  214. }
  215.  
  216. if (((p1x-p3x)*(p1x-p3x)+(p1y-p3y)*(p1y-p3y))<distV&&distOk2===false){
  217. distOk2=true;
  218. if (d1x*d3x<0){
  219. d1x=-d1x; d3x=-d3x;
  220. }
  221. if (d1y*d3y<0){
  222. d1y=-d1y; d3y=-d3y;
  223. }
  224. }
  225. if (((p1x-p3x)*(p1x-p3x)+(p1y-p3y)*(p1y-p3y))>distV){
  226. distOk2=false;
  227. }
  228.  
  229. if (((p2x-p3x)*(p2x-p3x)+(p2y-p3y)*(p2y-p3y))<distV&&distOk3===false){
  230. distOk3=true;
  231. if (d2x*d3x<0){
  232. d2x=-d2x; d3x=-d3x;
  233. }
  234. if (d2y*d3y<0){
  235. d2y=-d2y; d3y=-d3y;
  236. }
  237. }
  238. if (((p2x-p3x)*(p2x-p3x)+(p2y-p3y)*(p2y-p3y))>distV){
  239. distOk3=false;
  240. }
  241.  
  242. vache1.style.left=p1x;
  243. vache1.style.top=p1y;
  244. vache2.style.left=p2x;
  245. vache2.style.top=p2y;
  246. idDivHorloge.style.left=p3x;
  247. idDivHorloge.style.top=p3y;
  248. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement