【问题标题】:Position in ellipse formula椭圆公式中的位置
【发布时间】:2015-01-02 21:22:03
【问题描述】:

假设我有一个坐标网格。我需要知道 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 中编写的,但是伪代码也可以。我想用椭圆做同样的事情。

提前致谢!

【问题讨论】:

  • 椭圆的数学定义是什么(从 p1 开始,到 p2 结束)- 是椭圆吗?对于椭圆,您可能需要定义更多参数
  • 是的,我的意思是椭圆..原谅我的英语水平。
  • 它是内接在轴对齐的矩形中,由两个顶点 p1、p2 定义,还是这些点应该位于椭圆圆周上?

标签: math lua geometry love2d


【解决方案1】:

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

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

///center of ellipse coordinates:
mx = (x1+x2)/2
my = (y1+y2)/2

///ellipse semiaxes:
ax = (x1-x2)/2
ay = (y1-y2)/2 

////due to ellipse equation
 return = (posx-mx)^2/ax^2 + (posy-my)^2/ay^2 <= 1

【讨论】:

  • 好的,现在你能解释一下 x, y, mx, 我的意思吗?我怎么知道位置是否在椭圆内?
  • 还请原谅我缺乏数学/英语知识,这让这个问题更加令人困惑!
  • 没问题。只是 - 椭圆形没有精确的数学定义,因此几乎不需要说明。
  • 是的,俄语中的“椭圆”就是这个意思。好吧,你活你学。再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
  • 2016-09-13
相关资源
最近更新 更多