gpt4 book ai didi

javascript - 简单的 HTML5-JS 页面因 DT 无响应而卡住

转载 作者:行者123 更新时间:2023-11-30 15:47:00 24 4
gpt4 key购买 nike

Here是我的 HTML 文件,用于模拟 3 球体。当我运行它时,页面卡住。 Chrome DevTools 不会接受任何命令。是否有我错过的无限循环?

最佳答案

我不能在评论中发布这个,但是你检查过了吗?你有两个 while 循环,一个是嵌套的……我可能是错的,代码很难理解。

已更新(感谢 Brian 的澄清):

在内部循环中,isClose 与某些计算(未完成赋值)进行比较,如果计算结果为真,则退出内部循环。在此条件之后,不会对 isClose 或第一个条件内的任何变量执行任何赋值。因此,如果内部循环没有在第一次通过时退出,它永远不会 :)

while (true) {
isClose = !isClose;
p0 = project(obj.vertices[ obj.faces[f][v-1] ]);
p1 = project(obj.vertices[ obj.faces[f][ v ] ]);
factor = (5000 - p1[0] - p1[1]) / (p1[0] + p1[1] - p0[0] - p0[1]);
p01 = [p1[0] + factor * (p1[0] - p0[0]), p1[1] + factor * (p1[1] - p0[1])];
polygon = [p01, p1];
while (true) {
v++;
if (isClose != obj.vertices[ obj.faces[f][v % obj.faces[f].length] ][2] > -Math.PI/2)
break;
polygon[polygon.length] = project(obj.vertices[ obj.faces[f][v % obj.faces[f].length] ]);
}
p0 = project(obj.vertices[ obj.faces[f][ v % obj.faces[f].length] ]);
p1 = project(obj.vertices[ obj.faces[f][(v-1) % obj.faces[f].length] ]);
factor = (5000 - p1[0] - p1[1]) / (p1[0] + p1[1] - p0[0] - p0[1]);
p01 = p1 + factor * (p1 - p0);
polygon[polygon.length] = p01;
if (is_clockwise(polygon)) {
p1 = polygon[ 0 ];
pN = polygon[polygon.length - 1];
factor = 5000 / (p1[0] + pN[0] + p1[1] + pN[1]);
p0 = [factor * (p1[0] + pN[0]), factor * (p1[1] + pN[1])];
polygon[polygon.length] = p0;
draw(polygon, obj.colour);
}
}

关于javascript - 简单的 HTML5-JS 页面因 DT 无响应而卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39917874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com