javascript - 如何移动一个点的 y 坐标以与一条线相交?

标签 javascript geometry

enter image description here

我有点 c,它代表一个圆的中心。拖动圆圈后,我希望它的 y 坐标 hmm 捕捉到在点 ab 之间绘制的一条线。如何解决 hmm

到目前为止,我已经能够找到点 ab 之间的中间 y 值。但是,它没有考虑点 cx 值。:

const snapYToLine = (aY, bY) => {
  const yDist = bY - aY;
  return aY + (yDist * 0.5);
}

const a = { x: 10, y: 10 };
const b = { x: 50, y: 30 };
const c = { x: 20, y: 0 }; // not doing anything with this yet...

const hmm = snapYToLine(a.y, b.y); // will need to include c.x here...
console.log(hmm);

最佳答案

C

X 坐标取决于您拖动它的位置,但是 Y 坐标应该保持在 A 之间的直线上B?

两点(A 和 B)之间的直线方程: (x - Xa)/(Xa - Xb) = (y - Ya)/(Ya - Yb)

所以 hmm = (x - Xa) * (Ya - Yb)/(Xa - Xb) + Ya

因为它是直线方程,所以你可以将点 C 拖到 A/B X 坐标上,仍然可以找到相应的 Y 值。

希望我没听错你的问题。

关于javascript - 如何移动一个点的 y 坐标以与一条线相交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70898261/

相关文章:

IE8 和 Safari 中的 Javascript + 日期转换

javascript - ReactJS:对象数组的 propTypes 验证

javascript - 将 image.src 设置为自身会导致 onLoad 触发吗?

flash - 使用多个点确定圆心/圆心

javascript - 导航到没有react-router的URL - "_this.props.history is undefined"错误

javascript - 所选选项未显示在 html 中

iOS - 检查 [CGPoint] 画一条直线

geometry - 给定 XY 坐标计算线交点的 Z?

wpf - 使用 WPF 在空白区域绘制同心圆形状

c# - 计算点到直线的距离