椭圆上的位置公式

假设我有一个坐标网格。我需要知道p0是否位于从p1开始、以p2结束的椭圆上。

其他几何对象的示例:

  • 矩形
function PositiongOnRectangle(posx, posy, x1, y1, x2, y2)
    return (posx >= x1 and posy >= y1 and posx <= x2 and posy <= y2)
end
  • 圆形
function PositionOnCircle(posx, posy, x1, y1, radius)
    local distance = math.sqrt((posx - x1)^2 + (posy - y1)^2)
    return (radius >= distance)
end

上述示例使用Lua编写,但伪代码也可以。我想用椭圆做同样的事情。

谢谢!

点赞
用户844416
用户844416

对于椭圆,内切于轴对齐的矩形,由两个顶点p1,p2定义:

PositionOnEllipse(posx,posy,x1,y1,x2,y2)

/// 椭圆中心坐标:
mx = (x1 + x2) / 2
my = (y1 + y2) / 2

/// 椭圆的半轴:
ax = (x1 - x2) / 2
ay = (y1 - y2) / 2

//// 由于椭圆方程式
return = (posx - mx)^2 / ax^2 + (posy - my)^2 / ay^2 <= 1
2014-11-06 12:09:57