6

假设我们有一个椭圆 x^2/a^2 + y^2/b^2 。

在椭圆上取一个点 (a*cos(t),b*sint(t)),找到椭圆上另一个点的最快方法是什么,使得它们之间的距离是给定的 d。[d 小于 pi*a*b]。

当我有一个角[四分之一椭圆]并且需要沿着它找到由一些'd'分隔的点时遇到了问题。

4

2 回答 2

3

椭圆的一个子部分的长度是一个椭圆积分,没有封闭形式的解。

为了计算沿椭圆的距离,您需要一个数值积分程序。我推荐 Romberg 或 Gauss Quadrature(在 Wikipedia 上查找)。如果您重复执行此操作,则预先计算椭圆周围一堆点的距离,以便您可以快速到达正确的区域,然后开始积分。

您将需要平分(在 Wikipedia 上查找)以找到所需的长度。

于 2011-05-24T17:22:36.827 回答
0

椭圆弧的长度没有解析解。这意味着您将无法将数字插入方程式以找到结果,而是使用数值积分方法。

辛普森规则很容易实现,尽管很可能比其他答案中提到的方法慢。

既然你有办法找到椭圆弧的长度,只需测量不同的端点,直到你找到一个长度 d 到某个可接受的公差

于 2016-12-09T13:41:58.033 回答