私はそれが精度と速度の間の妥協点であると考えています。私は通常、小さい円には36を使用し、大きなものには90を使用します。 ...と巨大なもののために数千...考えられるので、円は(最大ズームで)円のように見え、ポリゴンに似ていないように考えてください。
また...代数n
が周あたりのラインセグメントの数であり、e
が所望の円形形状からの最大距離である

da=2.0*M_PI/n
e=r-(r*cos(0.5*da))
これを計算することができます。その後、あなたはピクセル単位で必要なエラーに設定(および半径r
はピクセル単位である)場合:SOエディタで直接方程式を導出しながら、
n=M_PI/acos((r-e)/r)
うまくいけば、私は間違いをしませんでした。あなたが望むのであれば、本当に正確な円がe=0.4 [pixels]
を設定すると、あなたは問題ないはずです
は[EDIT1]罪の波は
ループのリストウィットこれらのプロパティを作成:
d(i) = < 0.0 , 10.0)
i = { 0,1,2,...83 }
その後sinwaveがレンダリングさを:あなたを与える
x(i) = xscale * d(i)
y(i) = yscale * sin(d(i)-time)
:
x(i) = < 0.0 , xscale)
y(i) = < -yscale , +yscale)
したがって、sinwaveは10/(2*PI)= ~ 1.59
ピリオドをレンダリングします。半分の重なりは、ビューによって切り取られます。理論的には10/84
の代わりに6.28/84 -> 7/84
を使うことができますが、レンダリングの異なるアスペクト比の設定を扱うのは安全値かもしれません(私はそのプラットフォームではコードしませんので、これは私の側での推測です)。正弦波は、PI
の周期x
のサイズがPI*circle_radius
に等しくなるようにスケーリングされるので、84はサークルから来る可能性が最も高い(私の元の回答)。
はい、それです! –
実際、この例のコードは、円ではなく正弦グラフ上の点に使用されます。彼らは円ではまったく使われていません – dagda1
@ dagda1 sin波は円の大きさにスケーリングされているため、多かれ少なかれ同じものになります – Spektre