Jacob_DiDiodato icon

JS Survey First Edit

Jacob_DiDiodato | PRO | 08/29/17 04:44:15 PM UTC | 0 ⭐ | 278 👁️ | Never ⏰ | []
JavaScript |

2.57 KB

|

None

|

0 👍

/

0 👎

var c = document.getElementById('myCanvas');
var elemLeft = c.offsetLeft;
var elemTop = c.offsetTop;
var ctx = c.getContext('2d');
 
var canvasWidth = c.width;
var canvasHeight = c.height;
 
var attributesList = [];
var levelsDict = [];
var numTrials = 0;
var attributesPerPage = 0;
returnedText = readTextFile("./surveyinfo.txt").split("\n");
for (i = 1; i < returnedText.length; i++)
{
    if (i != returnedText.length - 1)
    {
        attributesList.push(returnedText[i].split(":")[0])
        levelsDict.push(returnedText[i].split(":")[1].split(","))
    }
    else
    {
        numTrials = Number(returnedText[i])
    }
}
 
if (attributesList.length > 8)
{
    attributesPerPage = 8
}
else
{
    attributesPerPage = attributesList.length
}
 
console.log(attributesList);
console.log(levelsDict);
 
ctx.font = "30px Times";
 
redraw();
 
function readTextFile(file)
{   
    var allText;
    var rawFile = new XMLHttpRequest();
    rawFile.open("GET", file, false);
    rawFile.onreadystatechange = function ()
    {
        if(rawFile.readyState === 4)
        {
            if(rawFile.status === 200 || rawFile.status == 0)
            {
                allText = rawFile.responseText;
                //alert(allText);
            }
        }
    }
    rawFile.send(null);
    return allText;
}
 
function ellipse(context, cx, cy, rx, ry){
    context.save(); // save state
    context.beginPath();
 
    context.translate(cx-rx, cy-ry);
    context.scale(rx, ry);
    context.arc(1, 1, 1, 0, 2 * Math.PI, false);
 
    context.restore(); // restore to original state
    context.stroke();
}
 
function redraw() {
    ctx.font = "30px Times";
 
    ctx.beginPath();
    ctx.fillStyle = "#D3D3D3";
    ctx.fillRect(0,0,canvasWidth,canvasHeight); 
    
    var aFirst = true;
    var bFirst = false;
    
    var isAFirst = Math.floor(Math.random() * 2);
    if (isAFirst === 1)
    {
        aFirst = true;
        bFirst = false;
    }
    else
    {
        aFirst = false;
        bFirst = true;
    }
    
    ctx.beginPath();
    ctx.fillStyle = "black";
    ctx.fillText("Choice A", 303 + Number(aFirst)*187, 40);
    ctx.fillText("Choice B", 303 + Number(bFirst)*187, 40);
    ctx.fillText("Pick one ->", 60, canvasHeight - 30)
    ctx.moveTo(453,0);
    ctx.lineTo(453,720);
    ctx.stroke();
    ctx.moveTo(266,0);
    ctx.lineTo(266,720);
    ctx.stroke();
    for (i = 0; i < 9; i++)
    {
        ctx.moveTo(0,72*(i+1));
        ctx.lineTo(640,72*(i+1));
        ctx.stroke();
    }
    ellipse(ctx, 360,canvasHeight - 40,10,10)
    ellipse(ctx, 545,canvasHeight - 40,10,10)
}
 
// Add event listener for `click` events.
c.addEventListener('click', function(event) {
    var x = event.pageX - elemLeft;
    var y = event.pageY - elemTop;
        
    console.log(x)
    console.log(y)
    
    redraw();
}, false);

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎