これは説明するのが非常に複雑なので、最善を尽くします。見逃したものがある場合は申し訳ありません。お知らせください。修正します。
私の質問は、私はこの形を描くことを任されており、
これは、C++ を使用して、この形状の点を計算するコードを記述して実行します。
重要な詳細。
ユーザー入力 - 中心点 (X、Y)、表示する点の数、フォント サイズ (影響半径)
出力 - 形状の座標のリスト。
ポイントを取得した後の全体的な目的は、それらを Excel のグラフに入れることです。うまくいけば、ユーザーが入力したサイズで描画してくれます。
半径の最大値は 165mm、最小値は 35mm であることがわかっています。基本のフォント サイズを 20 にすることにしました。
半径 = (選択したフォント サイズ/20)*130。これは単なる推定です。おそらく正しくないことは承知していますが、少なくともテンプレートとしては機能すると思いました。
次に、2 つの異なる中心点を持つ 2 つの異なる円を作成し、それらをリンクして形状を作成することにしました。内側の線は、半径を大きくし、中心点を X 軸 (Y は一定のまま) に沿って大きくする必要があると考えました。
そこで、2 番目の中心点を (X+4, Y) と定義しました。(繰り返しになりますが、推定値であり、それらがどれだけ離れているかは実際には問題ではないと考えていました).
次に、半径 2 = (選択したフォント サイズ/20)*165 (最大半径) を決定しました。
したがって、2 つの半径と 2 つの中心点があります。
円の点を計算するために、私は本当に苦労しています。これを行う最善の方法は、インクリメントを作成することであると判断しました(ここにテンプレートがあります)
for(int i=0; i<=n; i++) //where 'n' is users chosen number of points
{
//Equation for X point
//Equation for Y Point
cout<<"("<<X<<","<<Y<<")"<<endl;
}
さて、私の人生では、ポイントを計算するための方程式を理解することはできません. 角度を含む方程式を見つけましたが、何も持っていないので苦労しています。
私は本質的に、円の周りを除いて、ここでポイント 'P' を計算しようとしています。 (ソース: tutorvista.com )
私が問題であると考えているもう1つのポイントは、計算された値に制限を課して、形状にある値のみを表示することです。外側の線を完全な半円にする以外に制限を正確に選択する方法がわからないので、最大半径を取得できますか?
そう。正確に進める方法について、私と共有できるヒント/ヒント/リンクを誰かが持っていますか?
繰り返しますが、質問に問題がある場合は、申し訳ありませんが、お知らせいただければ修正するために最善を尽くします。
乾杯
アップデート;
R1 = (Font/20)*130;
R2 = (Font/20)*165;
for(X1=0; X1<=n; X1++)
{
Y1 = ((2*Y)+(pow(((4*((pow((X1-X), 2)))+(pow(R1, 2)))), 0.5)))/2;
Y2 = ((2*Y)-(pow(((4*((pow((X1-X), 2)))+(pow(R1, 2)))), 0.5)))/2;
cout<<"("<<X1<<","<<Y1<<")";
cout<<"("<<X1<<","<<Y2<<")";
}
意見?