方程式r(theta) = cos(k*theta) + Cのオフセット C でポーラー ローズをプロットしようとすると、問題が発生します。このポーラー ローズをプロットしようとしています:
http://en.wikipedia .org/wiki/Polar_coordinate_system#/media/File:Cartesian_to_polar.gif
極方程式は次のようになります:
r(シータ) = cos(k * シータ)
または
r(シータ) = sin(k * シータ)
私が描きたい北極バラの式は:
r(シータ) = 2 + sin(6 * シータ)
わかりました、パラメトリック方程式は次のようになります:
x = C + sin(k * theta) * cos(theta)
y = C + sin(k * theta) * sin(theta)
キャンバス (描画領域) では、原点が画面の中央にないため、バラをそこに移動する必要があります。わかりました、大したことはありません。もう 1 つのポイントは、バラが見えるように拡大縮小する必要があることです。そうしないと小さすぎますが、それでも問題ありません。これで 100* が説明されます。ここに私のコードがあります、それはC ++にあります:
for ( float t = 0; t < PI_2; t+= 0.01 )
{
r = Origin.get_x() + 100*(2+(sin(6*t) * cos(t)));
h = Origin.get_y() + 100*(2+(sin(6*t) * sin(t)));
point(r,h);
}
私はそれが間違っていることを知っています.C定数でなければならない+2を追加すると、私が望むように機能しないからです. 「余分な翻訳」を防ぎ、適切に描画するにはどうすればよいですか?