You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript类Doom射线投射游戏:FOV视角旋转实现难题

射线投射(RayCasting)游戏视角旋转问题

我正在用JavaScript开发一款类似Doom的射线投射游戏,当前首个难题是视角旋转相关的坐标计算问题。我尝试了多种公式,想要绘制两条跟随立方体边缘的线条来实现视野(FOV)效果,但this.desenho.rotate()方法不会改变点的实际坐标,导致无法直接获取立方体的坐标。

相关代码如下:

cCenter= [this.x+this.width,this.y];
//this.desenho represents my canvas context
this.desenho.beginPath();
this.desenho.strokeStyle = "blue";

initX = cCenter[0] + this.width  * Math.cos(this.radians());
initY = cCenter[1] + this.height * Math.sin(this.radians());
this.desenho.moveTo(initX-this.width,initY); //initX-this.width Cause i have my origin point in the top corner of the cube.

//this.radians() returns the current angle my cube is in radians
initX = initX + 100* Math.cos(this.radians());
initY = initY + 100* Math.sin(this.radians());

this.desenho.lineTo(initX,initY);
this.desenho.stroke();

内容的提问来源于stack exchange,提问作者Dalton Gomes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:52:21