- 締切済み
C言語のプログラムに対する質問です。
C言語のプログラムに対する質問です。 円に内接する正方形をその円に引き延ばす処理のソースコードをどうつくったらいいのかわかりません。 ・正方形と円の輪郭点の座標を配列に設定させる。 ・正方形からの対応点、どの点が円のどこに移動するのか。 ・円からみても、正方形からみても最短な点をマッチングする。 ・線形歪み というヒントがあります。 どなたか、教えて頂きたいです。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 和泉 博(@hiroshi09s)
- ベストアンサー率54% (59/109)
内接する正方形をその円に引き延ばすの意味が不明ですが、単純に内接する正方形を求めるのなら、正方形の性質から 1、円の中心点 2、円の半径 3、正方形が円と内接する点(起点)の角度 がわかれば、自ずと決まるのでは。 /* taiga.c compile: gcc taiga.c -lm */ #include <stdio.h> #include <math.h> int main(void) { double r, theta; double x0, y0; int i; x0 = 0.0; // 円の中心の X座標値 y0 = 0.0; // 円の中心の Y座標値 r = 1.0; // 円の半径 theta = M_PI / 6.0; // 起点の角度 for (i = 0; i < 4; i++) // 内接正方形4点の座標を求める printf("(x%d, y%d) = (%f, %f)¥n", i + 1, i + 1, x0 + r * cos(theta + i * M_PI_2), y0 + r * sin(theta + i * M_PI_2)); return 0; } http://hooktail.org/computer/index.php?C%B8%C0%B8%EC%A4%CE%BF%F4%B3%D8%B4%D8%BF%F4
- D-Matsu
- ベストアンサー率45% (1080/2394)
#1でも言われてますが、「プログラムを使わずに自分の手でやる場合、どうやってやればいいのか」というのを考えるのが最初です。 この際、カンとか目分量とか言ったことは一切行わずに計算だけで出来るところまで落とすのが重要。 そこまで出来てしまえば、その手順をそのままプログラムに落とすだけですから。
- zuntac
- ベストアンサー率36% (45/124)
はっきり言って、なにを言っているのかわかりません。 こうゆうのは図を使わないと説明できないです。 それに、プログラムの問題というより、数学の問題です。 まずは、数学的に式を求めて、それを実現するアルゴリズム、データ構造を 考えるのが必要です。プログラムはその最後に行います。
お礼
ありがとうございます! 非常に助かります。 C言語の数学関数も参考になりました!!!