我知道我现在应该问你“为什么我的代码这么慢”并且给你大量的代码,但我现在有这个问题已经有一个星期了,这真让我感到沮丧。
function drawFront() {
ctx.beginPath();
var tempPosition = scene.box.func.calcPos(scene.box.names[i], 0, 0, 0);
ctx.moveTo(tempPosition.x, tempPosition.y);
var tempPosition = scene.box.func.calcPos(scene.box.names[i], 1, 0, 0);
ctx.lineTo(tempPosition.x, tempPosition.y);
var tempPosition = scene.box.func.calcPos(scene.box.names[i], 1, 1, 0);
ctx.lineTo(tempPosition.x, tempPosition.y);
var tempPosition = scene.box.func.calcPos(scene.box.names[i], 0, 1, 0);
ctx.lineTo(tempPosition.x, tempPosition.y);
ctx.closePath();
if (scene.box[scene.box.names[i]].material.useFaces == true){ //this is true
ctx.fillStyle = scene.box[scene.box.names[i]].material.faces[0].c;
ctx.fill();
}
if (scene.box[scene.box.names[i]].material.grid == true) // this is true
ctx.stroke();
}
此代码应绘制具有4个角的形状,所有这些角位置均使用scene.box.func.calcPos()
函数计算。所有这一切都很好,但随着时间的推移,绘图变得越来越慢,越来越慢。
我的CPU温度逐渐从 40°C 上升到 80°C 以上。
可能是什么原因造成的?
编辑: 这是一个jsfiddle:https://jsfiddle.net/fswxtxyz/ 这是该项目的github页面:https://github.com/Quoteme/Fluchtpunkt3D 非常感谢你的帮助