合理的な近似
他の回答ですでに述べたように、これを行う正確な方法はありません。ただし、解を効率的に近似することは可能です。
私の数式は右上の象限のみを処理します。他の象限を処理するには、さまざまな符号の変更を適用する必要があります。
してみましょうdは連続する点間のご希望のアーク距離とすること。最後にプロットされた点が(x、y)にあるとします。
|
b +-------._ (x,y)
| `@-._
| `-.
| `.
| \
-+--------------------+--->
O| a
次に、次の点を次の座標にプロットします。
x' = x + d / sqrt(1 + b²x² / (a²(a²-x²)))
y' = b sqrt(1 - x'²/a²)
証明
次の点を(x +Δx、y +Δy)とします。両方の点が楕円方程式を満たします。
x²/a² + y²/b² = 1
(x+Δx)²/a² + (y+Δy)²/b² = 1
方程式からyを取り除くと、次のようになります。
Δy = b (sqrt(1 - (x+Δx)²/a²) - sqrt(1 - x²/a²))
我々は仮定Δxが、我々は交換するので、十分に小さいですfは(X +Δxだけ)-f(x)を持つF '(x)は、Δxが使用して線形近似のためにF'を:
Δy = -bxΔx / (a² sqrt(1 - x²/a²))
dが十分に小さい場合、ΔxとΔyは十分に小さく、弧の長さは点間のユークリッド距離に近くなります。したがって、次の近似が有効です。
Δx² + Δy² ~ d²
上記のΔyを置き換え、Δxを解きます。
Δx ~ d / sqrt(1 + b²x² / (a²(a²-x²)))
dが十分に小さくない場合はどうなりますか?
上記の近似を有効にするにはdが大きすぎる場合は、単にdをd / Nに置き換えます。たとえば、N = 3とし、Nから1つの点のみをプロットします。
最後のメモ
この方法には極値(x = 0またはy = 0)で問題があり、追加の近似を使用して処理できます(つまり、実際にプロットされているかどうかに関係なく、象限の最後のポイントをスキップします)。
極座標を使用して全体をやり直すことにより、楕円全体の処理がおそらくより堅牢になります。しかし、それはいくつかの作業であり、これは古い質問なので、元のポスターから何らかの関心がある場合にのみ、それを行います:-)