// Crear un objeto FileReader para leer el archivo csv
var reader = new FileReader();

// Definir una función que se ejecuta cuando el archivo se carga
reader.onload = function(event) {
  // Obtener el contenido del archivo como texto
  var text = event.target.result;

  // Usar una librería como PapaParse para convertir el texto en un array de objetos
  var data = Papa.parse(text, {header: true}).data;

  // Crear un array con los nombres de los participantes o lo que se rifa
  var names = data.map(function(item) {
    return item.name;
  });

  // Crear un canvas para dibujar la ruleta
  var canvas = document.getElementById("canvas");
  var ctx = canvas.getContext("2d");

  // Definir el radio y el centro de la ruleta
  var radius = Math.min(canvas.width, canvas.height) / 2;
  var center = {x: canvas.width / 2, y: canvas.height / 2};

  // Definir el ángulo inicial y el incremento por cada segmento de la ruleta
  var startAngle = -Math.PI / names.length;
  var angleIncrement = Math.PI * 2 / names.length;

  // Dibujar cada segmento de la ruleta con un color aleatorio y el nombre correspondiente
  for (var i = 0; i < names.length; i++) {
    // Calcular el ángulo final del segmento
    var endAngle = startAngle + angleIncrement;

    // Elegir un color aleatorio para el segmento
    var color = "hsl(" + Math.floor(Math.random() * 360) + ",100%,50%)";

    // Dibujar el segmento con el color elegido
    ctx.beginPath();
    ctx.moveTo(center.x, center.y);
    ctx.arc(center.x, center.y, radius, startAngle, endAngle);
    ctx.fillStyle = color;
    ctx.fill();
    
    // Dibujar el borde del segmento con color negro
    ctx.lineWidth = "1";
    ctx.strokeStyle="black";
    ctx.stroke();

    // Calcular el punto medio del ángulo del segmento para colocar el nombre
    var midAngle = (startAngle + endAngle) / 2;

    // Calcular las coordenadas del punto medio usando trigonometría
    var x = center.x + Math.cos(midAngle) * radius * .8;
    var y = center.y - Math.sin(midAngle) * radius * .8;

     // Dibujar el nombre con color blanco y fuente Arial 
     ctx.font="20px Arial";
     ctx.fillStyle="white";
     ctx.textAlign="center";
     ctx.textBaseline="middle";
     ctx.fillText(names[i], x ,y);

     // Actualizar el ángulo inicial para el siguiente segmento 
     startAngle += angleIncrement;
   }
};

// Leer el archivo csv seleccionado por el usuario como texto 
var fileInput= document.getElementById("fileInput");
fileInput.onchange=function(){
   reader.readAsText(fileInput.files[0]);
};
// สร้างวัตถุ FileReader เพื่ออ่านไฟล์ csv var reader = new FileReader(); // กำหนดฟังก์ชันที่จะดำเนินการเมื่อโหลดไฟล์ reader.onload = function(event) { // รับเนื้อหาของไฟล์เป็นข้อความ var text = event.target.result; // ใช้ไลบรารีเช่น PapaParse เพื่อแปลงข้อความเป็นอาร์เรย์ของวัตถุ var data = Papa.parse(text, {header: true}).data; // สร้างอาร์เรย์ด้วยชื่อของผู้เข้าร่วมหรือสิ่งที่จับฉลาก var name = data.map(function(item) { return item.name; }); // สร้างผืนผ้าใบเพื่อวาดสปินเนอร์ var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); // กำหนดรัศมีและศูนย์กลางของสปินเนอร์ var radius = Math.min(canvas.width, canvas.height) / 2; var center = {x:canvas.width/2, y:canvas.height/2}; // กำหนดมุมเริ่มต้นและการเพิ่มขึ้นสำหรับแต่ละส่วนของสปินเนอร์ var startAngle = -Math.PI /names.length; var angleIncrease = Math.PI * 2 / ชื่อความยาว; // วาดแต่ละส่วนของสปินเนอร์ด้วยสีสุ่มและชื่อที่สอดคล้องกันสำหรับ (var i = 0; i < name.length; i++) { // คำนวณมุมสุดท้ายของเซ็กเมนต์ var endAngle = startAngle + angleIncreat; // เลือกสีสุ่มสำหรับส่วน var color = "hsl(" + Math.floor(Math.random() * 360) + ",100%,50%)"; // วาดส่วนด้วยสีที่เลือก ctx.beginPath(); ctx.moveTo(center.x, center.y); ctx.arc(center.x, center.y, รัศมี, startAngle, endAngle); ctx.fillStyle = สี; ctx.เติม(); // วาดขอบของส่วนด้วยสีดำ ctx.lineWidth = "1"; ctx. strokeStyle = "สีดำ"; ctx.จังหวะ(); // คำนวณจุดกึ่งกลางของมุมของส่วนเพื่อวางชื่อ var midAngle = (startAngle + endAngle) / 2; // คำนวณพิกัดของจุดกึ่งกลางโดยใช้ตรีโกณมิติ var x = center.x + Math.cos(midAngle) * radius * .8; var y = center.y - Math.sin(midAngle) * รัศมี * .8; // วาดชื่อด้วยสีขาวและแบบอักษร Arial ctx.font="20px Arial"; ctx.fillStyle="สีขาว"; ctx.textAlign="ศูนย์"; ctx.textBaseline = "กลาง"; ctx.fillText(ชื่อ[i], x ,y); // อัปเดตมุมเริ่มต้นสำหรับส่วนถัดไป startAngle += angleIncrease; } }; // อ่านไฟล์ csv ที่ผู้ใช้เลือกเป็นข้อความ var fileInput= document.getElementById("fileInput"); fileInput.onchange=function(){ reader.readAsText(fileInput.files[0]); };
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence