我目前正在 WebGL 中构建一个 2D 绘图应用程序。我想实现缩放以指向鼠标光标,类似于此处的示例。但我无法弄清楚如何在我的案例中应用该答案中的解决方案。
我通过缩放相机矩阵完成了基本的缩放。但它会缩放到画布的左上角,因为这是投影设置的原点 (0,0)(据我所知)。
实现基本平移和缩放:

var projection = null;
var view = null;
var viewProjection = null;
function draw(gl, camera, sceneTree){
// projection matrix
projection = new Float32Array(9);
mat3.projection(projection, gl.canvas.clientWidth, gl.canvas.clientHeight);
// camera matrix
view = new Float32Array(9);
mat3.fromTranslation(view, camera.translation);
mat3.rotate(view, view, toRadians(camera.rotation));
mat3.scale(view, view, camera.scale);
// view matrix
mat3.invert(view, view)
// VP matrix
viewProjection = new Float32Array(9);
mat3.multiply(viewProjection, projection, view);
// go through scene tree:
// - build final matrix for each object …Run Code Online (Sandbox Code Playgroud)