2017-05-11 9 views
0

私はsin()とcos()関数を使って半径の異なる円を描くことに興味があります。cos()sin()で円を描画します。繰り返しピクセルはなく、ギャップはありませんか?

ラジアンを増やして同じ場所に複数のプロットがなく、ピクセルベースのディスプレイに描かれた円の隙間がないように、黄金のルールがありますか?

x = cos(r) * radius 
y = sin(r) * radius 
r = r + s 

私は、2×PIを半径から派生した数で除算することと何かを考えていますか?

浮動小数点計算の制限のため、これは本当に単純か不可能かは確かです。お時間を

おかげ

アンソニー

+0

: 'Y = + -sqrt(R * r - x * x) ' – martin

答えて

0

弧の長さはfiは角度で、delta_fiは角度の変化であり、単にrは円の半径であるs = r * delta_fiです。 x軸に

この弧の投影はdelta_x = s * sin(fi)であり、Y軸にはdelta_x又はdelta_yが明らか1

であり、問​​題が対称的であるいずれかのことをあなたはこのようなdelta_fiしたいdelta_y = s * cos(fi)

fiを-45°から45°に、delta yを解くことができ、その後、他の象限で同じ解を適用することができます。我々は持っている:したがって

r * delta_fi * cos(fi) = 1

:あなたがターゲット解像度を知っている場合

が、それは各xについて、yの2つの値を計算する方が良いでしょう

delta_fi = 1/cos(fi)/r

関連する問題