From 76d59c2ff1f8cd42b27c84befd3daeb41c40f91b Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 30 Dec 2022 11:56:14 +0100 Subject: [PATCH] 3.141592653589793238462643383279502884 --- index.php | 3 ++- script.js | 48 ++++++++++++++++++++++++++++-------------------- 2 files changed, 30 insertions(+), 21 deletions(-) diff --git a/index.php b/index.php index 393f30f..90a6dae 100755 --- a/index.php +++ b/index.php @@ -20,7 +20,8 @@ var_dump($res); diff --git a/script.js b/script.js index 6a8d233..b42d0ad 100755 --- a/script.js +++ b/script.js @@ -1,6 +1,6 @@ -function draw_roulette(nb_person, x, y, r, names){ - console.log(names); +function draw_roulette(x, y, r, names){ + let nb_person = names.length; let chart = document.getElementById("roulette").querySelector('g'); let starting_coo = new Array(x, y + r); let text_coo = new Array(starting_coo[0] + (r/2), starting_coo[1]); @@ -26,28 +26,36 @@ function draw_roulette(nb_person, x, y, r, names){ chart.appendChild(text); chart.innerHTML += ' '; - console.log(new_path.getAttribute('d')); - starting_coo = coo_arr } }; function rotate(nb_person){ - let angle = Math.floor(Math.random()*15)*360 + (Math.random()*nb_person)*360/nb_person; - return new Promise((resolve, reject) => { - let i = 0; - let interval = setInterval(() => { - if (i >= angle){ - document.getElementById('roulette').style.transform = 'rotate('+angle+'deg)'; - clearInterval(interval); - resolve() - } - else { - i += 9; - console.log(i); - document.getElementById('roulette').style.transform = 'rotate('+i+'deg)'; - } - }, 5); - }) + let winner = Math.random() * nb_person; + let angle = Math.floor(Math.random()*15)*360 - winner * 360/nb_person; + let result = new Promise((resolve, reject) => { + let i = 0; + let add = 0; + let interval = setInterval(() => { + if (i >= angle){ + document.getElementById('roulette').style.transform = 'rotate('+angle+'deg)'; + clearInterval(interval); + resolve(names[Math.floor(winner)]); + } + else { + if (i > angle/2){ + add -= 1; + } + else{ + add += 1; + } + add = Math.abs(add); + i += add; + document.getElementById('roulette').style.transform = 'rotate('+i+'deg)'; + } + }, 5); + }); + console.log(result); + result.then((val) => console.log(val)); };