小编nic*_*tgn的帖子

WebGL 2D 相机缩放到鼠标点

我目前正在 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)

javascript 2d canvas webgl

1
推荐指数
1
解决办法
2591
查看次数

标签 统计

2d ×1

canvas ×1

javascript ×1

webgl ×1