function.js 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931
  1. function nextPage(code,num){
  2. saveRecord(code);
  3. setTimeout(1500,location.replace(num+'.php'));
  4. }
  5. function nextPage2(code,url){
  6. saveRecord(code);
  7. setTimeout(1500,location.replace(url));
  8. }
  9. function selectItem(ans,num,check){
  10. if(!isStop){
  11. saveRecord(ans);
  12. saveRecord(250);
  13. document.getElementById("status").setAttribute('src', "image/check.jpg");
  14. document.getElementById("status").style.display="inline";
  15. document.getElementById("selectItem1").style.display="none";
  16. document.getElementById("selectItem2").style.display="none";
  17. document.getElementById("selectItem3").style.display="none";
  18. if(num == 4)
  19. document.getElementById("selectItem4").style.display="none";
  20. setTimeout(
  21. function(){
  22. saveRecord(check);
  23. if(check==200){
  24. error++;
  25. if(error==1){ //錯誤次數
  26. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  27. document.getElementById("status").style.display="inline";
  28. document.getElementById("buttonPrev").style.display="inline";
  29. document.getElementById("buttonNext").style.display="inline";
  30. document.getElementById("selectItem1").style.display="inline";
  31. document.getElementById("selectItem2").style.display="inline";
  32. document.getElementById("selectItem3").style.display="inline";
  33. if(num == 4)
  34. document.getElementById("selectItem4").style.display="inline";
  35. isStop = true;
  36. }
  37. else{
  38. document.getElementById("status").setAttribute('src', "image/retry.jpg");
  39. document.getElementById("status").style.display="inline";
  40. setTimeout(
  41. function(){
  42. document.getElementById("status").setAttribute('src', "");
  43. document.getElementById("status").style.display="none";
  44. },3000);
  45. }
  46. }
  47. else{
  48. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  49. document.getElementById("status").style.display="inline";
  50. document.getElementById("buttonPrev").style.display="inline";
  51. document.getElementById("buttonNext").style.display="inline";
  52. document.getElementById("selectItem1").style.display="inline";
  53. document.getElementById("selectItem2").style.display="inline";
  54. document.getElementById("selectItem3").style.display="inline";
  55. if(num == 4)
  56. document.getElementById("selectItem4").style.display="inline";
  57. isStop = true;
  58. }
  59. },3000);
  60. }
  61. }
  62. function dragPic(){
  63. dragTime = Math.floor(Date.now() / 1000);
  64. }
  65. function rotateArrow(top,bottom,value,direction){
  66. if(direction == 7 && (rotateZ-value)>=bottom){
  67. rotateZ = rotateZ - value;
  68. saveRecordr(550,0,0,-value,0);
  69. }
  70. else if(direction == 9 && (rotateZ+value)<=top){
  71. rotateZ = rotateZ + value;
  72. saveRecordr(500,0,0,value,0);
  73. }
  74. document.getElementById("picA").style.transform = 'rotateZ('+rotateZ+'deg)';
  75. }
  76. function rotatePic(top,bottom,value,direction){
  77. if(direction == 8){
  78. if((rotateX + value)==90 || (rotateX + value)==270 || (rotateX + value)==-90 || (rotateX + value)==-270 )
  79. value = value * 2;
  80. rotateX = rotateX + value;
  81. if(rotateX == 360)
  82. rotateX = 0;
  83. saveRecordr(300,value,0,0,0);
  84. }
  85. else if(direction == 2 && (rotateX-value)>=bottom){
  86. if((rotateX - value)==90 ||(rotateX - value)==270 || (rotateX - value)==-90 || (rotateX - value)==-270 )
  87. value = value * 2;
  88. rotateX = rotateX - value;
  89. if(rotateX == -360)
  90. rotateX = 0;
  91. saveRecordr(350,-value,0,0,0);
  92. }
  93. else if(direction == 4 && (rotateY+value)<=top){
  94. if((rotateY + value)==90 ||(rotateY + value)==270 || (rotateY + value)==-90 || (rotateY + value)==-270 )
  95. value = value * 2;
  96. rotateY = rotateY + value;
  97. if(rotateY == 360)
  98. rotateY = 0;
  99. saveRecordr(400,0,value,0,0);
  100. }
  101. else if(direction == 6 && (rotateY-value)>=bottom){
  102. if((rotateY - value)==90 ||(rotateY- value)==270 || (rotateY - value)==-90 || (rotateY - value)==-270 )
  103. value = value * 2;
  104. rotateY = rotateY - value;
  105. if(rotateY == -360)
  106. rotateY = 0;
  107. saveRecordr(450,0,-value,0,0);
  108. }
  109. else if(direction == 7 && (rotateZ-value)>=bottom){
  110. rotateZ = rotateZ - value;
  111. if(rotateZ == -360)
  112. rotateZ = 0;
  113. saveRecordr(550,0,0,-value,0);
  114. }
  115. else if(direction == 9 && (rotateZ+value)<=top){
  116. rotateZ = rotateZ + value;
  117. if(rotateZ == 360)
  118. rotateZ = 0;
  119. saveRecordr(500,0,0,value,0);
  120. }
  121. else if(direction == 3){
  122. if(picwidth==100){
  123. if(scale == (45/100)){
  124. scale = 69/100 ;
  125. document.getElementById("picB").style.top=140;
  126. }
  127. else if(scale == (69/100)){
  128. scale = 1;
  129. document.getElementById("picB").style.top=157;
  130. }
  131. saveRecordr(301,0,0,0,scale);
  132. }
  133. else if(picwidth==147){
  134. if(scale == (59/147)){
  135. scale = 93/147 ;
  136. document.getElementById("picB").style.top=136;
  137. }
  138. else if(scale == (93/147)){
  139. scale = 1;
  140. document.getElementById("picB").style.top=157;
  141. }
  142. saveRecordr(301,0,0,0,scale);
  143. }
  144. else if ((scale+value)<=top){
  145. scale = scale + value;
  146. saveRecordr(301,0,0,0,scale);
  147. }
  148. }
  149. else if(direction == 1){
  150. if(picwidth==100){
  151. if(scale == 1){
  152. scale = 69/100 ;
  153. document.getElementById("picB").style.top=140;
  154. }
  155. else if(scale == (69/100)){
  156. scale = 45/100;
  157. document.getElementById("picB").style.top=130;
  158. }
  159. saveRecordr(301,0,0,0,scale);
  160. }
  161. else if(picwidth==147){
  162. if(scale == 1){
  163. scale = 93/147 ;
  164. document.getElementById("picB").style.top=136;
  165. }
  166. else if(scale == (93/147)){
  167. scale = 59/147;
  168. document.getElementById("picB").style.top=124;
  169. }
  170. saveRecordr(301,0,0,0,scale);
  171. }
  172. else if ((scale-value)>=bottom){
  173. scale = scale - value;
  174. saveRecordr(302,0,0,0,scale);
  175. }
  176. }
  177. document.getElementById("picA").style.transform = 'rotateX('+rotateX+'deg)rotateY('+rotateY+'deg)rotateZ('+rotateZ+'deg)scale('+scale+','+scale+')';
  178. document.getElementById("picB").style.transform = 'rotateX('+rotateX+'deg)rotateY('+rotateY+'deg)rotateZ('+rotateZ+'deg)scale('+scale+','+scale+')';
  179. }
  180. function checkAns(questNum){
  181. switch(questNum){
  182. case 206:
  183. saveRecord(250);
  184. document.getElementById("status").setAttribute('src', "image/check.jpg");
  185. document.getElementById("status").style.display="inline";
  186. document.getElementById("pic7").style.display="none";
  187. document.getElementById("pic9").style.display="none";
  188. document.getElementById("chkButton").style.display="none";
  189. setTimeout(
  190. function(){
  191. if(rotateZ == -20){
  192. saveRecord(100);
  193. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  194. }
  195. else{
  196. saveRecord(200);
  197. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  198. }
  199. document.getElementById("status").style.display="inline";
  200. document.getElementById("buttonPrev").style.display="inline";
  201. document.getElementById("buttonNext").style.display="inline";
  202. },3000);
  203. break;
  204. case 310:
  205. saveRecord(250);
  206. document.getElementById("status").setAttribute('src', "image/check.jpg");
  207. document.getElementById("status").style.display="inline";
  208. document.getElementById("picA").style.display="none";
  209. document.getElementById("pic1").style.display="none";
  210. document.getElementById("pic2").style.display="none";
  211. document.getElementById("pic3").style.display="none";
  212. document.getElementById("pic4").style.display="none";
  213. document.getElementById("pic6").style.display="none";
  214. document.getElementById("pic7").style.display="none";
  215. document.getElementById("pic8").style.display="none";
  216. document.getElementById("pic9").style.display="none";
  217. document.getElementById("chkButton").style.display="none";
  218. setTimeout(
  219. function(){
  220. if(scale == 1){
  221. if(rotateX < 0)
  222. rotateX = rotateX + 360;
  223. if(rotateY < 0)
  224. rotateY = rotateY + 360;
  225. if(rotateZ < 0)
  226. rotateZ = rotateZ + 360;
  227. if((((rotateX>=0 && rotateX<=20) || (rotateX>=340 && rotateX<=360)) && rotateY>=160 && rotateY<=200 && ((rotateZ>=0 && rotateZ<=20) || (rotateZ>=340 && rotateZ<=360)))
  228. ||(rotateX>=160 && rotateX<=200 && ((rotateY>=0 && rotateY<=20) || (rotateY>=340 && rotateY<=360)) && rotateZ>=160 && rotateZ<=200)){
  229. saveRecord(100);
  230. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  231. }
  232. else{
  233. saveRecord(200);
  234. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  235. }
  236. }
  237. else{
  238. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  239. }
  240. document.getElementById("status").style.display="inline";
  241. document.getElementById("buttonPrev").style.display="inline";
  242. document.getElementById("buttonNext").style.display="inline";
  243. },3000);
  244. break;
  245. case 314:
  246. saveRecord(250);
  247. document.getElementById("status").setAttribute('src', "image/check.jpg");
  248. document.getElementById("status").style.display="inline";
  249. document.getElementById("picA").style.display="none";
  250. document.getElementById("pic1").style.display="none";
  251. document.getElementById("pic2").style.display="none";
  252. document.getElementById("pic3").style.display="none";
  253. document.getElementById("pic4").style.display="none";
  254. document.getElementById("pic6").style.display="none";
  255. document.getElementById("pic7").style.display="none";
  256. document.getElementById("pic8").style.display="none";
  257. document.getElementById("pic9").style.display="none";
  258. document.getElementById("chkButton").style.display="none";
  259. setTimeout(
  260. function(){
  261. if(scale == 1){
  262. if(rotateX < 0)
  263. rotateX = rotateX + 360;
  264. if(rotateY < 0)
  265. rotateY = rotateY + 360;
  266. if(rotateZ < 0)
  267. rotateZ = rotateZ + 360;
  268. if((((rotateX>=0 && rotateX<=20) || (rotateX>=340 && rotateX<=360)) && rotateY>=160 && rotateY<=200 && ((rotateZ>=0 && rotateZ<=20) || (rotateZ>=340 && rotateZ<=360)))
  269. ||(rotateX>=160 && rotateX<=200 && ((rotateY>=0 && rotateY<=20) || (rotateY>=340 && rotateY<=360)) && rotateZ>=160 && rotateZ<=200)){
  270. saveRecord(100);
  271. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  272. }
  273. else{
  274. saveRecord(200);
  275. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  276. }
  277. }
  278. else{
  279. saveRecord(200);
  280. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  281. }
  282. document.getElementById("status").style.display="inline";
  283. document.getElementById("buttonPrev").style.display="inline";
  284. document.getElementById("buttonNext").style.display="inline";
  285. },3000);
  286. break;
  287. case 406:
  288. saveRecord(250);
  289. count = 0;
  290. document.getElementById("status").setAttribute('src', "image/check.jpg");
  291. document.getElementById("status").style.display="inline";
  292. document.getElementById("picA").style.display="none";
  293. document.getElementById("pic7").style.display="none";
  294. document.getElementById("pic9").style.display="none";
  295. document.getElementById("chkButton").style.display="none";
  296. cxt.clearRect(0, 0, c.width, c.height);
  297. cxt.beginPath();
  298. cxt.lineWidth = 7;
  299. cxt.strokeStyle = '#ff0000';
  300. cxt.moveTo(210,87);
  301. for (var i = 0; i <= 70; i++) {
  302. count++;
  303. move(57,170,i,count,10);
  304. }
  305. setTimeout(
  306. function(){
  307. switch(rotateZ){
  308. case -15:
  309. saveRecord(200);
  310. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  311. count = 0;
  312. for (var i = 0; i <= 180; i=i+0.5){
  313. count++;
  314. movetoPos(127,240,i,count,10,15,-1,1);
  315. }
  316. posXCar=(127+180*Math.sin(15*(Math.PI / 180)));
  317. posYCar=(240+180*Math.cos(15*(Math.PI / 180)));
  318. posXArrow=127+240*(Math.tan(15*(Math.PI / 180)));
  319. posYArrow=240+240;
  320. rotateZ=15;
  321. saveSession(posXCar,posYCar,rotateZ,posXArrow,posYArrow);
  322. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  323. document.getElementById("status").style.display="inline";
  324. document.getElementById("buttonPrev").style.display="inline";
  325. document.getElementById("buttonNext").style.display="inline";
  326. break;
  327. case 0:
  328. saveRecord(200);
  329. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  330. count = 0;
  331. for (var i = 0; i <= 180; i=i+0.5){
  332. count++;
  333. movetoPos(127,240,i,count,10,0,1,1);
  334. }
  335. posXCar=(127+180*Math.sin(15*(Math.PI / 180)));
  336. posYCar=(240+180*Math.cos(15*(Math.PI / 180)));
  337. posXArrow=127+240*(Math.tan(15*(Math.PI / 180)));
  338. posYArrow=240+240;
  339. rotateZ=15;
  340. saveSession(posXCar,posYCar,rotateZ,posXArrow,posYArrow);
  341. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  342. document.getElementById("status").style.display="inline";
  343. document.getElementById("buttonPrev").style.display="inline";
  344. document.getElementById("buttonNext").style.display="inline";
  345. break;
  346. case 15:
  347. saveRecord(100);
  348. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  349. count = 0;
  350. for (var i = 0; i <= 180; i=i+0.5){
  351. count++;
  352. movetoPos(127,240,i,count,10,15,1,1);
  353. }
  354. posXCar=(127+180*Math.sin(15*(Math.PI / 180)));
  355. posYCar=(240+180*Math.cos(15*(Math.PI / 180)));
  356. posXArrow=127+240*(Math.tan(15*(Math.PI / 180)));
  357. posYArrow=240+240;
  358. rotateZ=15;
  359. saveSession(posXCar,posYCar,rotateZ,posXArrow,posYArrow);
  360. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  361. document.getElementById("status").style.display="inline";
  362. document.getElementById("buttonPrev").style.display="inline";
  363. document.getElementById("buttonNext").style.display="inline";
  364. break;
  365. case 30:
  366. saveRecord(100);
  367. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  368. count = 0;
  369. for (var i = 0; i <= 180; i=i+0.5){
  370. count++;
  371. movetoPos(127,240,i,count,10,30,1,1);
  372. }
  373. posXCar=(127+180*Math.sin(30*(Math.PI / 180)));
  374. posYCar=(240+180*Math.cos(30*(Math.PI / 180)));
  375. posXArrow=127+240*(Math.tan(30*(Math.PI / 180)));
  376. posYArrow=240+240;
  377. rotateZ=30;
  378. saveSession(posXCar,posYCar,rotateZ,posXArrow,posYArrow);
  379. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  380. document.getElementById("status").style.display="inline";
  381. document.getElementById("buttonPrev").style.display="inline";
  382. document.getElementById("buttonNext").style.display="inline";
  383. break;
  384. case 45:
  385. saveRecord(200);
  386. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  387. count = 0;
  388. for (var i = 0; i <= 180; i=i+0.5){
  389. count++;
  390. movetoPos(127,240,i,count,10,45,1,1);
  391. }
  392. posXCar=(127+180*Math.sin(15*(Math.PI / 180)));
  393. posYCar=(240+180*Math.cos(15*(Math.PI / 180)));
  394. posXArrow=127+240*(Math.tan(15*(Math.PI / 180)));
  395. posYArrow=240+240;
  396. rotateZ=15;
  397. saveSession(posXCar,posYCar,rotateZ,posXArrow,posYArrow);
  398. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  399. document.getElementById("status").style.display="inline";
  400. document.getElementById("buttonPrev").style.display="inline";
  401. document.getElementById("buttonNext").style.display="inline";
  402. break;
  403. case 60:
  404. saveRecord(200);
  405. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  406. count = 0;
  407. for (var i = 0; i <= 180; i=i+0.5){
  408. count++;
  409. movetoPos(127,240,i,count,10,60,1,1);
  410. }
  411. posXCar=(127+180*Math.sin(15*(Math.PI / 180)));
  412. posYCar=(240+180*Math.cos(15*(Math.PI / 180)));
  413. posXArrow=127+240*(Math.tan(15*(Math.PI / 180)));
  414. posYArrow=240+240;
  415. rotateZ=15;
  416. saveSession(posXCar,posYCar,rotateZ,posXArrow,posYArrow);
  417. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  418. document.getElementById("status").style.display="inline";
  419. document.getElementById("buttonPrev").style.display="inline";
  420. document.getElementById("buttonNext").style.display="inline";
  421. break;
  422. case 75:
  423. saveRecord(200);
  424. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  425. count = 0;
  426. for (var i = 0; i <= 180; i=i+0.5){
  427. count++;
  428. movetoPos(127,240,i,count,10,75,1,1);
  429. }
  430. posXCar=(127+180*Math.sin(15*(Math.PI / 180)));
  431. posYCar=(240+180*Math.cos(15*(Math.PI / 180)));
  432. posXArrow=127+240*(Math.tan(15*(Math.PI / 180)));
  433. posYArrow=240+240;
  434. rotateZ=15;
  435. saveSession(posXCar,posYCar,rotateZ,posXArrow,posYArrow);
  436. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  437. document.getElementById("status").style.display="inline";
  438. document.getElementById("buttonPrev").style.display="inline";
  439. document.getElementById("buttonNext").style.display="inline";
  440. break;
  441. }
  442. },(count+1)*10);
  443. break;
  444. case 407:
  445. saveRecord(250);
  446. count = 0;
  447. document.getElementById("status").setAttribute('src', "image/check.jpg");
  448. document.getElementById("status").style.display="inline";
  449. document.getElementById("picA").style.display="none";
  450. document.getElementById("pic7").style.display="none";
  451. document.getElementById("pic9").style.display="none";
  452. document.getElementById("chkButton").style.display="none";
  453. cxt.clearRect(0, 0, c.width, c.height);
  454. cxt.beginPath();
  455. cxt.lineWidth = 7;
  456. cxt.strokeStyle = '#ff0000';
  457. cxt.moveTo(posYCar+40,posXCar+30);
  458. for (var i = 180; i <= 240; i=i+0.5){
  459. count++;
  460. movetoPos(127,240,i,count,10,posCarAngle,1,1);
  461. }
  462. setTimeout(
  463. function(){
  464. switch(rotateZ){
  465. case -15:
  466. saveRecord(200);
  467. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  468. count = 0;
  469. for (var i = 0; i <= 180; i++){
  470. count++;
  471. movetoPos(posXArrow,posYArrow,i,count,10,15,-1,1);
  472. }
  473. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  474. document.getElementById("status").style.display="inline";
  475. document.getElementById("buttonPrev").style.display="inline";
  476. document.getElementById("buttonNext").style.display="inline";
  477. break;
  478. case 0:
  479. saveRecord(200);
  480. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  481. count = 0;
  482. for (var i = 0; i <= 180; i++){
  483. count++;
  484. movetoPos(posXArrow,posYArrow,i,count,10,0,1,1);
  485. }
  486. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  487. document.getElementById("status").style.display="inline";
  488. document.getElementById("buttonPrev").style.display="inline";
  489. document.getElementById("buttonNext").style.display="inline";
  490. break;
  491. case 15:
  492. saveRecord(200);
  493. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  494. count = 0;
  495. for (var i = 0; i <= 180; i++){
  496. count++;
  497. movetoPos(posXArrow,posYArrow,i,count,10,15,1,1);
  498. }
  499. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  500. document.getElementById("status").style.display="inline";
  501. document.getElementById("buttonPrev").style.display="inline";
  502. document.getElementById("buttonNext").style.display="inline";
  503. break;
  504. case 30:
  505. if(posCarAngle<=rotateZ)
  506. saveRecord(200);
  507. else
  508. saveRecord(100);
  509. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  510. count = 0;
  511. for (var i = 0; i <= 180; i++){
  512. count++;
  513. movetoPos(posXArrow,posYArrow,i,count,10,30,1,1);
  514. }
  515. if(posCarAngle<=rotateZ)
  516. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  517. else
  518. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  519. document.getElementById("status").style.display="inline";
  520. document.getElementById("buttonPrev").style.display="inline";
  521. document.getElementById("buttonNext").style.display="inline";
  522. break;
  523. case 45:
  524. if(posCarAngle<=rotateZ)
  525. saveRecord(200);
  526. else
  527. saveRecord(100);
  528. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  529. count = 0;
  530. for (var i = 0; i <= 180; i++){
  531. count++;
  532. movetoPos(posXArrow,posYArrow,i,count,10,45,1,1);
  533. }
  534. if(posCarAngle<=rotateZ)
  535. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  536. else
  537. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  538. document.getElementById("status").style.display="inline";
  539. document.getElementById("buttonPrev").style.display="inline";
  540. document.getElementById("buttonNext").style.display="inline";
  541. break;
  542. case 60:
  543. saveRecord(100);
  544. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  545. count = 0;
  546. for (var i = 0; i <= 180; i++){
  547. count++;
  548. movetoPos(posXArrow,posYArrow,i,count,10,60,1,1);
  549. }
  550. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  551. document.getElementById("status").style.display="inline";
  552. document.getElementById("buttonPrev").style.display="inline";
  553. document.getElementById("buttonNext").style.display="inline";
  554. break;
  555. case 75:
  556. saveRecord(100);
  557. document.getElementById("car").style.transform = 'rotateZ('+rotateZ+'deg)';
  558. count = 0;
  559. for (var i = 0; i <= 180; i++){
  560. count++;
  561. movetoPos(posXArrow,posYArrow,i,count,10,75,1,1);
  562. }
  563. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  564. document.getElementById("status").style.display="inline";
  565. document.getElementById("buttonPrev").style.display="inline";
  566. document.getElementById("buttonNext").style.display="inline";
  567. break;
  568. }
  569. },(count+1)*10);
  570. break;
  571. case 410:
  572. saveRecord(250);
  573. document.getElementById("status").setAttribute('src', "image/check.jpg");
  574. document.getElementById("status").style.display="inline";
  575. document.getElementById("pic7").style.display="none";
  576. document.getElementById("pic9").style.display="none";
  577. document.getElementById("chkButton").style.display="none";
  578. setTimeout(
  579. function(){
  580. if(rotateZ > 45){
  581. saveRecord(100);
  582. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  583. }
  584. else{
  585. saveRecord(200);
  586. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  587. }
  588. document.getElementById("status").style.display="inline";
  589. document.getElementById("buttonPrev").style.display="inline";
  590. document.getElementById("buttonNext").style.display="inline";
  591. },3000);
  592. break;
  593. case 511:
  594. saveRecord(250);
  595. document.getElementById("status").setAttribute('src', "image/check.jpg");
  596. document.getElementById("status").style.display="inline";
  597. document.getElementById("picA").style.display="none";
  598. document.getElementById("pic1").style.display="none";
  599. document.getElementById("pic2").style.display="none";
  600. document.getElementById("pic3").style.display="none";
  601. document.getElementById("pic4").style.display="none";
  602. document.getElementById("pic6").style.display="none";
  603. document.getElementById("pic7").style.display="none";
  604. document.getElementById("pic8").style.display="none";
  605. document.getElementById("pic9").style.display="none";
  606. document.getElementById("chkButton").style.display="none";
  607. setTimeout(
  608. function(){
  609. if(scale == 1){
  610. if(rotateX < 0)
  611. rotateX = rotateX + 360;
  612. if(rotateY < 0)
  613. rotateY = rotateY + 360;
  614. if(rotateZ < 0)
  615. rotateZ = rotateZ + 360;
  616. if((((rotateX>=0 && rotateX<=20) || (rotateX>=340 && rotateX<=360)) && ((rotateY>=0 && rotateY<=20) || (rotateY>=340 && rotateY<=360)) && rotateZ>=160 && rotateZ<=200) || (rotateX>=160 && rotateX<=200 && rotateY>=160 && rotateY<=200 && ((rotateZ>=0 && rotateZ<=20) || (rotateZ>=340 && rotateZ<=360)))){
  617. saveRecord(100);
  618. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  619. }
  620. else{
  621. saveRecord(200);
  622. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  623. }
  624. }
  625. else{
  626. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  627. }
  628. document.getElementById("status").style.display="inline";
  629. document.getElementById("buttonPrev").style.display="inline";
  630. document.getElementById("buttonNext").style.display="inline";
  631. },3000);
  632. break;
  633. case 606:
  634. saveRecord(250);
  635. document.getElementById("status").setAttribute('src', "image/check.jpg");
  636. document.getElementById("status").style.display="inline";
  637. document.getElementById("chkButton").style.display="none";
  638. document.getElementById("picA").style.display="none";
  639. document.getElementById("pic1").style.display="none";
  640. document.getElementById("pic2").style.display="none";
  641. document.getElementById("pic3").style.display="none";
  642. document.getElementById("pic4").style.display="none";
  643. document.getElementById("pic6").style.display="none";
  644. document.getElementById("pic7").style.display="none";
  645. document.getElementById("pic8").style.display="none";
  646. document.getElementById("pic9").style.display="none";
  647. setTimeout(
  648. function(){
  649. if(scale == 0.45){
  650. if(rotateX < 0)
  651. rotateX = rotateX + 360;
  652. if(rotateY < 0)
  653. rotateY = rotateY + 360;
  654. if(rotateZ < 0)
  655. rotateZ = rotateZ + 360;
  656. if((((rotateX>=0 && rotateX<=20) || (rotateX>=340 && rotateX<=360)) && rotateZ>=160 && rotateZ<=200 && ((rotateY>=0 && rotateY<=20) || (rotateY>=340 && rotateY<=360)))
  657. ||(rotateX>=160 && rotateX<=200 && ((rotateZ>=0 && rotateZ<=20) || (rotateZ>=340 && rotateZ<=360)) && rotateY>=160 && rotateY<=200)){
  658. saveRecord(100);
  659. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  660. }
  661. else{
  662. saveRecord(200);
  663. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  664. }
  665. }
  666. else{
  667. saveRecord(200);
  668. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  669. }
  670. document.getElementById("status").style.display="inline";
  671. document.getElementById("buttonPrev").style.display="inline";
  672. document.getElementById("buttonNext").style.display="inline";
  673. },3000);
  674. break;
  675. case 609:
  676. saveRecord(250);
  677. document.getElementById("status").setAttribute('src', "image/check.jpg");
  678. document.getElementById("status").style.display="inline";
  679. document.getElementById("chkButton").style.display="none";
  680. document.getElementById("picA").style.display="none";
  681. document.getElementById("pic1").style.display="none";
  682. document.getElementById("pic2").style.display="none";
  683. document.getElementById("pic3").style.display="none";
  684. document.getElementById("pic4").style.display="none";
  685. document.getElementById("pic6").style.display="none";
  686. document.getElementById("pic7").style.display="none";
  687. document.getElementById("pic8").style.display="none";
  688. document.getElementById("pic9").style.display="none";
  689. setTimeout(
  690. function(){
  691. if(scale == 0.69){
  692. if(rotateX < 0)
  693. rotateX = rotateX + 360;
  694. if(rotateY < 0)
  695. rotateY = rotateY + 360;
  696. if(rotateZ < 0)
  697. rotateZ = rotateZ + 360;
  698. if((((rotateX>=0 && rotateX<=20) || (rotateX>=340 && rotateX<=360)) && rotateZ>=160 && rotateZ<=200 && ((rotateY>=0 && rotateY<=20) || (rotateY>=340 && rotateY<=360)))
  699. ||(rotateX>=160 && rotateX<=200 && ((rotateZ>=0 && rotateZ<=20) || (rotateZ>=340 && rotateZ<=360)) && rotateY>=160 && rotateY<=200)){
  700. saveRecord(100);
  701. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  702. }
  703. else{
  704. saveRecord(200);
  705. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  706. }
  707. }
  708. else{
  709. saveRecord(200);
  710. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  711. }
  712. document.getElementById("status").style.display="inline";
  713. document.getElementById("buttonPrev").style.display="inline";
  714. document.getElementById("buttonNext").style.display="inline";
  715. },3000);
  716. break;
  717. case 612:
  718. saveRecord(250);
  719. document.getElementById("status").setAttribute('src', "image/check.jpg");
  720. document.getElementById("status").style.display="inline";
  721. document.getElementById("chkButton").style.display="none";
  722. document.getElementById("picA").style.display="none";
  723. document.getElementById("pic1").style.display="none";
  724. document.getElementById("pic2").style.display="none";
  725. document.getElementById("pic3").style.display="none";
  726. document.getElementById("pic4").style.display="none";
  727. document.getElementById("pic6").style.display="none";
  728. document.getElementById("pic7").style.display="none";
  729. document.getElementById("pic8").style.display="none";
  730. document.getElementById("pic9").style.display="none";
  731. setTimeout(
  732. function(){
  733. if(scale == 1){
  734. if(rotateX < 0)
  735. rotateX = rotateX + 360;
  736. if(rotateY < 0)
  737. rotateY = rotateY + 360;
  738. if(rotateZ < 0)
  739. rotateZ = rotateZ + 360;
  740. if((((rotateX>=0 && rotateX<=20) || (rotateX>=340 && rotateX<=360)) && rotateZ>=160 && rotateZ<=200 && ((rotateY>=0 && rotateY<=20) || (rotateY>=340 && rotateY<=360)))
  741. ||(rotateX>=160 && rotateX<=200 && ((rotateZ>=0 && rotateZ<=20) || (rotateZ>=340 && rotateZ<=360)) && rotateY>=160 && rotateY<=200)){
  742. saveRecord(100);
  743. document.getElementById("status").setAttribute('src', "image/correct.jpg");
  744. }
  745. else{
  746. saveRecord(200);
  747. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  748. }
  749. }
  750. else{
  751. saveRecord(200);
  752. document.getElementById("status").setAttribute('src', "image/wrongnext.jpg");
  753. }
  754. document.getElementById("status").style.display="inline";
  755. document.getElementById("buttonPrev").style.display="inline";
  756. document.getElementById("buttonNext").style.display="inline";
  757. },3000);
  758. break;
  759. }
  760. }
  761. function saveRecord(code){
  762. xmlhttp = new XMLHttpRequest();
  763. xmlhttp.onreadystatechange = function() {
  764. if (xmlhttp.readyState==4) {
  765. if(xmlhttp.status==200) {
  766. xmlhttp.abort();
  767. }
  768. }
  769. };
  770. xmlhttp.open("POST","saveRecord.php",true);
  771. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  772. xmlhttp.send("codenum=" + code + "&time=" + Math.floor(Date.now() / 1000));
  773. }
  774. function saveRecordHTML5(obj){
  775. xmlhttp = new XMLHttpRequest();
  776. xmlhttp.onreadystatechange = function() {
  777. if (xmlhttp.readyState==4) {
  778. if(xmlhttp.status==200) {
  779. xmlhttp.abort();
  780. }
  781. }
  782. };
  783. var code = obj.code;
  784. var rotX = obj.rotX;
  785. var rotY = obj.rotY;
  786. var rotZ = obj.rotZ;
  787. var rotS = obj.rotS;
  788. xmlhttp.open("POST","saveRecord.php",true);
  789. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  790. xmlhttp.send("codenum=" + code + "&time=" + Math.floor(Date.now() / 1000) + "&rotx="+rotX+"&roty="+rotY+"&rotz="+rotZ+"&scale="+rotS);
  791. }
  792. function saveRecords(code,time){
  793. xmlhttp = new XMLHttpRequest();
  794. xmlhttp.onreadystatechange = function() {
  795. if (xmlhttp.readyState==4) {
  796. if(xmlhttp.status==200) {
  797. xmlhttp.abort();
  798. }
  799. }
  800. };
  801. xmlhttp.open("POST","saveRecord.php",true);
  802. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  803. xmlhttp.send("codenum=" + code + "&dragtime=" + time);
  804. }
  805. function saveRecordr(code,rotX,rotY,rotZ,rotS){
  806. xmlhttp = new XMLHttpRequest();
  807. xmlhttp.onreadystatechange = function() {
  808. if (xmlhttp.readyState==4) {
  809. if(xmlhttp.status==200) {
  810. xmlhttp.abort();
  811. }
  812. }
  813. };
  814. xmlhttp.open("POST","saveRecord.php",true);
  815. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  816. xmlhttp.send("codenum=" + code + "&time=" + Math.floor(Date.now() / 1000) + "&rotx="+rotX+"&roty="+rotY+"&rotz="+rotZ+"&scale="+rotS);
  817. }
  818. function saveSession(posXCar,posYCar,angle,posXArrow,posYArrow){
  819. xmlhttp = new XMLHttpRequest();
  820. xmlhttp.onreadystatechange = function() {
  821. if (xmlhttp.readyState==4) {
  822. if(xmlhttp.status==200) {
  823. xmlhttp.abort();
  824. }
  825. }
  826. };
  827. xmlhttp.open("POST","saveSession.php",true);
  828. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  829. xmlhttp.send("posXCar=" + posXCar + "&posYCar=" + posYCar + "&angle="+ rotateZ +"&posXArrow=" + posXArrow + "&posYArrow=" + posYArrow);
  830. }
  831. function move(x,y,k,i,t){
  832. setTimeout(function(){
  833. document.getElementById("car").style.top=x+k;
  834. document.getElementById("car").style.left=y+k;
  835. cxt.lineTo(y+k+40,x+k+30);
  836. cxt.stroke();
  837. },i*t);
  838. }
  839. function movetoPos(x,y,k,i,t,a,p1,p2){
  840. setTimeout(function(){
  841. document.getElementById("car").style.top=(x+p1*k*Math.sin(a*(Math.PI / 180)));
  842. document.getElementById("car").style.left=(y+p2*k*Math.cos(a*(Math.PI / 180)));
  843. cxt.lineTo((y+p2*k*Math.cos(a*(Math.PI / 180)))+40,(x+p1*k*Math.sin(a*(Math.PI / 180)))+30);
  844. cxt.stroke();
  845. },i*t);
  846. }
  847. function movetoPos2(x,y,k,i,t,a,p1){ // 碰線
  848. setTimeout(function(){
  849. document.getElementById("car").style.top=(x+p1*k*(Math.tan(a*(Math.PI / 180))));
  850. document.getElementById("car").style.left=(y+k);
  851. cxt.lineTo((y+k)+40,(x+p1*k*(Math.tan(a*(Math.PI / 180))))+30);
  852. cxt.stroke();
  853. },i*t);
  854. }
  855. function dateFormat(date, format) {
  856. if(format === undefined){
  857. format = date;
  858. date = new Date();
  859. }
  860. var map = {
  861. "M": date.getMonth() + 1,
  862. "d": date.getDate(),
  863. "h": date.getHours(),
  864. "m": date.getMinutes(),
  865. "s": date.getSeconds(),
  866. "q": Math.floor((date.getMonth() + 3) / 3),
  867. "S": date.getMilliseconds()
  868. };
  869. format = format.replace(/([yMdhmsqS])+/g, function(all, t){
  870. var v = map[t];
  871. if(v !== undefined){
  872. if(all.length > 1){
  873. v = '0' + v;
  874. v = v.substr(v.length-2);
  875. }
  876. return v;
  877. }
  878. else if(t === 'y'){
  879. return (date.getFullYear() + '').substr(4 - all.length);
  880. }
  881. return all;
  882. });
  883. return format;
  884. }