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

如何判断点pt是否位于指定参数的椭圆内

判断点是否在椭圆内的方法

圆是椭圆的特殊情况(长半轴=短半轴),但椭圆不能直接用「点到中心的距离≤半径」来判断,得用椭圆的标准不等式:

对于中心在(cx, cy),水平半轴为a、垂直半轴为b的椭圆,点(px, py)满足以下条件时,就在椭圆内部(包括边界):

[(px - cx)/a]² + [(py - cy)/b]² ≤ 1

结合你给出的参数:

  • 中心center = [10,10] → cx=10,cy=10
  • radius = [3,4](垂直半径、水平半径)→ 垂直半轴b=3,水平半轴a=4

直接用这个不等式判断即可,无需计算点到中心的距离(开平方会增加不必要的计算开销)。

示例代码(JavaScript)

const center = [10, 10];
const radius = [3, 4]; // 垂直半径、水平半径
const pt = [12, 11]; // 替换为你要判断的点坐标

const cx = center[0];
const cy = center[1];
const horizontalRadius = radius[1];
const verticalRadius = radius[0];

const dx = pt[0] - cx;
const dy = pt[1] - cy;

// 判断点是否在椭圆内(包括边界)
const isPointInEllipse = (dx / horizontalRadius) ** 2 + (dy / verticalRadius) ** 2 <= 1;

console.log(isPointInEllipse); // 输出 true 或 false

补充说明

  • 如果要判断点严格在椭圆内部(不包括边界),把<= 1改成< 1即可
  • 避免使用Math.sqrt是因为平方运算的结果和开平方后的大小关系一致,直接用平方比较更高效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 18:22:43