• 締切済み

C言語のプログラムに対する質問です。

C言語のプログラムに対する質問です。 円に内接する正方形をその円に引き延ばす処理のソースコードをどうつくったらいいのかわかりません。  ・正方形と円の輪郭点の座標を配列に設定させる。  ・正方形からの対応点、どの点が円のどこに移動するのか。  ・円からみても、正方形からみても最短な点をマッチングする。  ・線形歪み というヒントがあります。 どなたか、教えて頂きたいです。よろしくお願いします。

みんなの回答

回答No.3

内接する正方形をその円に引き延ばすの意味が不明ですが、単純に内接する正方形を求めるのなら、正方形の性質から  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

taiga1217
質問者

お礼

ありがとうございます! 非常に助かります。 C言語の数学関数も参考になりました!!!

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

#1でも言われてますが、「プログラムを使わずに自分の手でやる場合、どうやってやればいいのか」というのを考えるのが最初です。 この際、カンとか目分量とか言ったことは一切行わずに計算だけで出来るところまで落とすのが重要。 そこまで出来てしまえば、その手順をそのままプログラムに落とすだけですから。

  • zuntac
  • ベストアンサー率36% (45/124)
回答No.1

はっきり言って、なにを言っているのかわかりません。 こうゆうのは図を使わないと説明できないです。 それに、プログラムの問題というより、数学の問題です。 まずは、数学的に式を求めて、それを実現するアルゴリズム、データ構造を 考えるのが必要です。プログラムはその最後に行います。

関連するQ&A

  • C言語の質問です。

    C言語の質問です。 以前質問した、C言語初心者のものです。 以前回答してくださった方、ありがとうございました! 前回の質問とかぶるんですが、質問は、 正方形の画像を円形にひきのばす(歪ませる)というプログラムがなかなか書けません。 どなたか教えてください! 円形にひきのばしたときに、正方形のどの座標がどにに移動してるのかってのを考えてつくりたいのですが。 画像を添付しました。 この画像の意味は、たとえば、正方形の中にある緑の四角(座標)が円のほうの緑の四角(座標)に移動したと考えたときに、添付画像に書いてある公式をつかって処理していくってことなんですが・・・。 それを同じようにすべての座標で処理していって円形に歪ませた画像をつくりあげたいんです。

  • C言語での開発環境での線の扱い方

    C言語での開発環境での線の扱い方 TSP問題を考えています。 1:2次元配列で座標(今回は5点程度)を用意。 (例)sorce[4][4]={{0,1},{3,8},{2,4},{2,7},{8,2}} 2:任意の点をスタート位置に設定。 3:座標同士の距離を計測(ユークリッド距離)。 4:(2)のうち最短距離を選ぶ。 ここまでできています。 これからアルゴリズムとしては、 5:任意のスタート位置から最短距離にある座標を線で繋ぐ。 6:繋いだ先の座標から最短距離にある座標を線で繋ぐ(これを繰り返す。)。 7:もし線の交差があれば、交差している座標間で線を入れ替える。 この処理を行いたいのですが、まず線を引くような、処理をどうやったらC言語で行えるのか(実際に線を引いて出力するわけではありません。)がわかりません。 ですので、5番の方法だけでも結構ですので、教えてください。よろしくお願いします。

  • 円周上の点をある正方形の周上に対応させたい

    いま、正方形とその内接円があります。内接円の円周上のある点をその正方形周上の点に対応させるもの(関数や変換行列など)を考えています。 よいアイデア、参考になる資料やヒント、アドバイスなどお力をいただきたいです。 詳細は添付画像を参照願います。

  • どうやっても解けません。助けてください~

    中学受験の問題と聞いて解いてはみたのですが、どうやっても答えが出てきません。 助けてください。お願いします。 中学受験の問題なので算数で解きたいのですが、座標・ベクトル・積分・何でも構いません。 問:一辺の長さ1の正方形ABCDに内接する円があり、弧ACを結びます。(BCを直径とする円の円周になるように) 正方形に内接している円がその弧によって分けられた小さいほうの領域(三日月状の)の面積を求めよ。 お願いします。

  • 添付図の水色の部分の面積は、以下の手順で出せると思うのですが、正しいで

    添付図の水色の部分の面積は、以下の手順で出せると思うのですが、正しいでしょうか? (実際の面積は出す必要はないです。) 添付図は、以下の図形の一部で成り立っているものとします。   正方形   正方形に内接する円   正方形の頂点のひとつを中心とし、円の半径と正方形の一辺の長さが等しい円 考えている手順は以下のとおりです。 1.Oを原点、頂点Cを座標(1,1)とするxy座標を考える。   円の方程式は(x^2)+(y^2)=0と   ((x+1)^2)+((y+1)^2)=0なので、   連立方程式として上記二式を解くと、点P,Qの座標が求まる。 2.点の座標が解っているのだから、角POQ、角PAQの大きさが出せる。 3.円の半径と中心角が解っているのだから、扇型POQ、扇型PAQの面積が出せる。 4.また、点の座標が解っているのだから、三角形OAQ、三角形OAPの面積が出せる。 5.扇型POQの面積+三角形OAQの面積+三角形OAPの面積-扇型PAQの面積で、添付図の水色の部分の面積が出せる。

  • 外接円から見た内接円の角度は?

    すみません。 私自身の三角関数の再確認なんですが、 正方形に外接する円の一点から内接する円の直径を見た時の角度は、次の考え方でいいですか? 正方形の一辺を2とすると 内接円の半径が1 外接円の半径が√2 なので、 外接円の一点(a)と内接円の中心(b)と内接円の直径との交点(c)で できる三角形abcは、 ab=√2 bc=1 ゆえに tan(θ)=1/√2≒0.7071 のθを求めて、その角度を倍すればいいと思うのですが。 ちなみに、70.528度という答え。あってますか。 よろしくお願いします。

  • 三日月の面積

    正方形に内接する円とその正方形の一角を中心として正方形内に4分の1の円を描いたときにできる三日月の面積の解き方を小学生にわかるように教えるとしたらどうすればいいですか?

  • この問題の解き方がわかりません

    一辺が1の正方形に内接円があり、正方形のBにコンパスの針を置き、AからCに弧を引きます。 このとき、弧で分けられた小さいほうの面積と内接円の重なる部分の面積を求めよという問題です。 よろしくお願いします。

  • C言語で制作するピラミッドアートについて

    C言語で制作するピラミッドアートについて 私は今、専門学校に通っています。そこでC言語を習っているのですが、数値を入力し、 その個数分*を一辺とする正方形・三角形・逆三角形・三角旗・ダイヤ型・六角形・星 型などのピラミッドアートを描画する課題が出されました。 二重ループなどを上手く使えば出来ると言われ、教科書なども読みましたが、あまり上 手く理解できず、上手くいかなくて困っています。 どうすれば良いのでしょうか? 何か良い解決策やヒント、またはそれについて詳しい方法が書かれてあるサイトや参考 書がありましたら、教えて下さい。

  • 正方形で、内接する円と、一頂点からの扇形で、混ざり

    正方形で、内接する円と、一頂点からの扇形で、混ざり扇形の外側で内接円の内側の面積はどうすれば求められるのでしょうか教えて下さい