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

如何计算画布上追踪指针位置的固定圆路径坐标?

几何坐标计算问题

几何示意图

如上图所示:

  • x, y 为圆心点,a1, b1 为圆上的半径端点
  • x1, y1 为画布上的指针位置,与 x, y 和 a1, b1 三点共线
  • 当指针位置移动到 x2, y2 时,求 a2, b2(即图中问号 ?)的值

我的目标是:无论将光标/指针移动到画布何处,点a1,b1都能追踪新位置,确保圆心到鼠标位置的直线始终经过该点。

该如何进行计算?


计算方法

  1. 先确定圆的固定半径 r,即圆心到初始端点的距离:
r = √[(a1 - x)² + (b1 - y)²]
  1. 计算圆心到新指针位置的方向向量:
  • x分量:dx = x2 - x
  • y分量:dy = y2 - y
  1. 计算该方向向量的长度(圆心到指针的直线距离):
d = √(dx² + dy²)
  1. 若d为0(指针刚好在圆心),则直接取a2 = x,b2 = y(或保留原端点位置,按需调整);否则将方向向量归一化后乘以半径,再叠加圆心坐标得到目标点:
a2 = x + (dx / d) * r
b2 = y + (dy / d) * r

这个逻辑的核心是利用共线方向一致的特性,通过归一化方向向量保证目标点始终在圆上,且严格处于圆心到指针的直线路径上。

内容的提问来源于stack exchange,提问作者Vikas Acharya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 16:12:05