![見出し画像](https://assets.st-note.com/production/uploads/images/150661731/rectangle_large_type_2_63a7e3782e8e3d1e2382d8467072a21b.jpeg?width=1200)
高校数学10分プログラミング(数学Ⅰ編 1.2次関数)1日目「1次関数のグラフを描く」解説
マガジンリスト > 数学Ⅰ編 1.2次関数 > 1日目 解説
本日の課題、おつかれさまでした。
1次関数のグラフを描くプログラムを作成することができたでしょうか。
解答例
1次関数
$$
y = \frac{1}{2} x + 1
$$
のグラフを描くプログラムはスケッチ「drawLinearFunction」の「drawLinearFunction」タブのテキストエディタに書かれた linearfunction 関数の部分に
float linearfunction(
float x
){
return x/2.0 + 1.0;
}
と書き加えます。その結果、ソースコード全体は下記のソースコード2となります。
void setup(){
size(500,500);
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); // 座標軸の準備
noFill();
stroke(0,0,0);
// グラフの定義域
float x_min = -x_range;
float x_max = x_range;
int plot_num = 200; // グラフを描くための頂点の個数
// グラフを描画
float x, y; // 関数の座標
float X, Y; // キャンバス上の座標
beginShape();
for(int i=0; i<=plot_num; i++){
x = x_min + (x_max - x_min) / plot_num * i; // 関数のx座標
y = linearfunction(x); // 関数の値
// キャンバス上の座標位置に換算
X = width / 2.0 / x_range * x;
Y = height / 2.0 / y_range * y;
vertex(X, Y);
}
endShape();
}
float linearfunction(
float x
){
return x/2.0 + 1.0;
}
ソースコード2 1次関数のグラフを描くプログラム
実行ボタン(左上の ▶ ボタン)を押すと、キャンバス上に1次関数
$$
y=\frac{1}{2} x + 1
$$
のグラフが描かれます(図1)。
![](https://assets.st-note.com/img/1722059579584-Rg91Au1wED.png)
やってほしいこと
今回利用したキャンバス上に座標軸を描く関数 setAxes の中身や、ソースコード2の
// グラフを描画
float x, y; // 関数の座標
float X, Y; // キャンバス上の座標
beginShape();
for(int i=0; i<=plot_num; i++){
x = x_min + (x_max - x_min) / plot_num * i; // 関数のx座標
y = linearfunction(x); // 関数の値
// キャンバス上の座標位置に換算
X = width / 2.0 / x_range * x;
Y = height / 2.0 / y_range * y;
vertex(X, Y);
}
endShape();
で行う1次関数のグラフを描く処理について、それらの解説を記事『高校数学をプログラミングで解く(数学I編)「1-0-1 グラフを描くための準備(その1)」』に載せていますので、一度チェックしてみてください。
なお、初学者には少し難しく感じるかもしれません。わからない場合はそんなものだと思って、先に進んでください。プログラミングの経験を積んでいくと、少しずつ理解する力がついてきますので、そのときあらためて読んでみてください。
本日は以上です。
明日は、2次関数のグラフを描くプログラムを作成します。
明日もよろしくお願いします。
※今回の課題とその解答例について質問や疑問がある方は、本記事の下部にあるコメント欄からお願いします。
MK’s papa
この記事が気に入ったらサポートをしてみませんか?