Так что в последнее время у меня возникла проблема с преобразованием строк из текстовых входов в float/integers для использования в анимации. есть идеи? в настоящее время я пытаюсь использовать parsFloat, но это просто остановило круг от загрузки всех вместе. есть ли другие способы преобразования строк в float? благодаря!
Проблема JS при попытке конвертировать строки в поплавки на холсте?
function myFunction() {
var degrees = undefined;
var Rad = function degToRad(x) {
degrees = x/(180/Math.PI);
return degrees;
};
var canvas = document.getElementById("canvas"),
c = canvas.getContext("2d");
var posX = 55, posY = 100, gravity = parseFloat(document.getElementById("drag").value) * parseFloat(document.getElementById("gravity").value), vX = parseFloat(document.getElementById("xVel").value), vY = 0;
setInterval(function() {
c.fillStyle = "black";
c.fillRect(0, 0, canvas.width, canvas.height);
c.beginPath();
c.arc(posX, posY, parseFloat(document.getElementById("radius").value), 0, Rad(360), false);
c.fillStyle = "white";
c.fill();
posX+= vX;
posY+= vY;
if (posY > 800-parseFloat(document.getElementById("radius").value)) {
vY *= -document.getElementById("bounce").value;
posY = 800-parseFloat(document.getElementById("radius").value);
vX *= 0.9;
}
vY += gravity;
}, parseFloat(document.getElementById("framerate").value));
}
</script>
</head>
<body>
<input id = "gravity" type="text" placeholder="gravity (m/s)">
<input id = "xVel" type = "text" placeholder="x velocity (m/s)">
<input id = "bounce" type = "text" placeholder="bounce (0-1)">
<input id = "radius" type = "text" placeholder="sphere radius">
<input id = "Mass" type = "text" placeholder="sphere mass">
<input id = "density" type = "text" placeholder="fluid density">
<input id = "framerate" type = "text" placeholder="framerate (ms/frame)">
<input id = "drag" type = "text" placeholder="drage co. (sphere = 0.5)">
<input id = "submit" type = "submit" onclick="myFunction()">
<button type="submit" onclick="location.reload()">done</button>
<canvas id = "canvas" width="5000" height="800">
</canvas>
</body>
</html>
Вы проверили консоль разработчика на наличие ошибок? – Pointy
Я предлагаю разобрать значение только один раз и сохранить анализируемое значение в переменной. –
Похоже, он работает здесь: https://jsfiddle.net/n1atr86d/ – Michelangelo