要实现此功能,您需要使用以下步骤:

  1. 获取鼠标点击事件的坐标。
  2. 遍历在线的点集合,检查每个点是否与鼠标点击位置相匹配。
  3. 如果找到匹配的点,则表示该点在线上;否则,表示该点不在线上。

以下是实现此功能的示例代码:

// 在线点的集合
let points = [
  { x: 100, y: 100 },
  { x: 200, y: 200 },
  { x: 300, y: 300 },
];

// 获取 canvas 元素
let canvas = document.getElementById("myCanvas");
let ctx = canvas.getContext("2d");

// 监听鼠标点击事件
canvas.addEventListener("click", function (event) {
  // 获取鼠标点击位置的坐标
  let mouseX = event.pageX - canvas.offsetLeft;
  let mouseY = event.pageY - canvas.offsetTop;

  // 遍历在线的点集合,检查每个点是否与鼠标点击位置相匹配
  for (let i = 0; i < points.length; i++) {
    let point = points[i];

    // 检查点击位置是否在点的范围内
    if (
      mouseX >= point.x - 5 &&
      mouseX <= point.x + 5 &&
      mouseY >= point.y - 5 &&
      mouseY <= point.y + 5
    ) {
      console.log("该点在线上");
      return;
    }
  }

  console.log("该点不在线上");
});

在此示例中,我们首先定义了一个包含在线点的集合 points。然后,我们获取了 canvas 元素和绘图上下文 ctx。接下来,我们监听了鼠标点击事件,并在事件处理程序中获取了鼠标点击位置的坐标。然后,我们遍历在线点的集合,检查每个点是否与鼠标点击位置相匹配。如果找到匹配的点,则表示该点在线上;否则,表示该点不在线上。最后,我们使用 console.log 输出结果

js canvas 点击查找当前点击的是否在线上

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

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