高校数学10分プログラミング(数学B編 1.平面上のベクトル)9日目「ベクトル方程式を考える4」
マガジンリスト > 数学B編 1.平面上のベクトル > 9日目 課題
おはようございます。
本日は、高校数学10分プログラミング(数学B編 1.平面上のベクトル)の9日目です。
本日の課題は、円のベクトル方程式に基づいて円を描くプログラムを作成することです。
円のベクトル方程式①
平面上の点と位置ベクトルを$${\mathrm{C}(\vec{c}), \mathrm{P}(\vec{p})}$$($${\mathrm{P}}$$は図形上の点)とします。
このとき、中心$${\mathrm{C}}$$、半径$${r}$$の円のベクトル方程式は以下で表されます。
$$
\left| \vec{p}-\vec{c} \right|=r \ \mathrm{または} \ (\vec{p}-\vec{c}) \cdot (\vec{p}-\vec{c}) = r^2
$$
課題
中心$${\mathrm{C}(3,3)}$$、半径$${r=5}$$の円を描くプログラムを作成してください。
ヒント
円のベクトル方程式①は$${\vec{c}=(x_c,y_c)}$$としてベクトルの成分で表すと、
$$
(x-x_c)^2+(y-y_c)^2=r^2
$$
となります。これは円の方程式そのものですので、circle 関数を用いてそのまま描くことができます。
プログラム
今回の課題の円のベクトル方程式①に基づき、円を描くためのスケッチ「drawVectorEquation_circle1」を準備しました。以下の zip ファイルをダウンロードして展開または解凍してご利用ください。
展開または解凍して得られるスケッチ「drawVectorEquation_circle1」の中のpdeファイル「drawVectorEquation_circle1.pde」をダブルクリックしてスケッチ「drawVectorEquation_circle1」の開発環境ウィンドウを立ち上げます。開発環境ウィンドウのタブ欄で「drawVectorEquation_circle1」タブを選択すると、そのテキストエリアに以下のソースコードが書かれています。
// 円のベクトル方程式①による円を描く
void setup(){
size(500,500,P2D);
noLoop();
float x_range = 10.0; // x軸の表示範囲 -x_rangeからx_rangeまで
float y_range = 10.0; // y軸の表示範囲 -y_rangeからy_rangeまで
setAxes(x_range, y_range); // 座標軸の準備
// 点Cの位置ベクトル
PVector c =
// 円の半径r
float r =
// 以下に図形を描いていく
noFill(); // 中身を塗りつぶさない
stroke(0,0,0); // 線の色を黒色に設定
// 座標スケールからキャンバスのスケールに換算するための値
float scale = width / 2.0 / x_range;
// 点Cを描く
strokeWeight(5);
point(c.x * scale, c.y * scale);
// 円を描く(赤色)
strokeWeight(1);
stroke(255,0,0);
circle(c.x * scale, c.y * scale, 2.0 * r * scale);
}
ソースコード1 円のベクトル方程式①に基づき、円を描くプログラム(未完成)
このソースコード1は円のベクトル方程式①の中心と半径を与える部分
// 円の中心Cの位置ベクトル
PVector c =
// 円の半径r
float r =
は未完成です。ヒントを参考に、未完成の部分に追記して、プログラムを完成させてください。
それでは、よろしくお願いします。
MK's papa