您可以通过以下步骤在JavaScript的canvas中实现固定一个点并按住Shift键进行等比例缩放的矩形:

  1. 创建一个canvas元素:
<canvas id="myCanvas"></canvas>
  1. 获取canvas元素的上下文:
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
  1. 定义矩形的初始位置和尺寸:
var rect = {
  x: 50,
  y: 50,
  width: 100,
  height: 100
};
  1. 监听鼠标按下和松开事件:
var isDragging = false;
var startX, startY;

canvas.addEventListener("mousedown", function(e) {
  startX = e.clientX;
  startY = e.clientY;
  isDragging = true;
});

canvas.addEventListener("mouseup", function() {
  isDragging = false;
});
  1. 监听鼠标移动事件,判断是否按住Shift键并进行等比例缩放:
canvas.addEventListener("mousemove", function(e) {
  if (!isDragging) {
    return;
  }

  var deltaX = e.clientX - startX;
  var deltaY = e.clientY - startY;

  if (e.shiftKey) {
    var scale = Math.abs(deltaX) > Math.abs(deltaY) ? Math.abs(deltaX) : Math.abs(deltaY);
    if (deltaX < 0) {
      scale = -scale;
    }

    rect.width += scale;
    rect.height += scale;
  } else {
    rect.x += deltaX;
    rect.y += deltaY;
  }

  startX = e.clientX;
  startY = e.clientY;

  drawRect();
});
  1. 定义一个绘制矩形的函数:
function drawRect() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  ctx.fillRect(rect.x, rect.y, rect.width, rect.height);
}
  1. 调用绘制矩形的函数进行初始绘制:
drawRect();

这样,您就可以在canvas中实现固定一个点并按住Shift键进行等比例缩放的矩形了

js canvas 生成矩形固定一个点按住shift等比例缩放

原文地址: http://www.cveoy.top/t/topic/h9Jo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录