y=xやy=x2などの関数グラフを描く。
■setpoint関数とmoveto関数を作る

line 関数は始点と終点を与えて直線を描くが、関数グラフなどの連続した線を描く場合は、描画現 在位置(LPX,LPY)から(x,y)位置に直線を描く moveto(x,y)関数があると便利である。合わせて現 在位置を設定する setpoint(x,y)を定義する。
例題2-13-1
setpoint と moveto を使って y=x のグラフを描く。キャンバスのサイズは 400×400 とする。
コード
let LPX = 0, LPY = 0; // 描画現在位置
function setpoint(x, y) {
LPX = x + width / 2;
LPY = height / 2 - y;
}
function moveto(x, y) {
let px = x + width / 2;
let py = height / 2 - y;
line(LPX, LPY, px, py);
LPX = px; LPY = py;
}
function setup() {
createCanvas(400, 400);
}
function draw() {
background(220);
stroke(0, 0, 255);
setpoint(-200, 0); moveto(200, 0); // x軸
for (let x = -180; x <= 180; x += 20) {
setpoint(x, 5); moveto(x, -5);
}
setpoint(0, 200); moveto(0, -200); // y軸
for (let y = 180; y >= -180; y -= 20) {
setpoint(-5, y); moveto(5, y);
}
stroke(0);
for (let x = -180; x <= 180; x += 10) {
let y = x;
if (x == -180)
setpoint(x, y);
else
moveto(x, y);
}
}結果

練習問題2-13-1
y=x2のグラフを描きなさい。xを-10~10の範囲でy=x2のyの値を以下の表に書き入れなさい。

この表の結果から、グラフ表示する場合のx座標とy座標の範囲を考えなさい。キャンバスのサイ ズは 400×400 とする。
結果

練習問題2-13-2
y = x3 のグラフを描きなさい。キャンバスのサイ ズは 400×400 とする。
結果

練習問題2-13-3
y = 1/xのグラフを描きなさい。xが0でないか判定する必要がある。キャンバスのサイ ズは 400×400 とする。
結果

練習問題2-13-4
三角関数は高校の数学で習うが、グラフィックスを行う上では三角関数はとても重要である。三角関数にはsin(サイン),cos(コサイン),tan(タンジェント)がある。y = sin(x)をp5.jsで表すと以下のようになる。
y = Math.sin(x * Math.PI / 180)多くのプログラミング言語では三角関数に与える引数は「度」ではなく「ラジアン」という単位を使う。x°をラジアンに変換するのに「Math.PI / 180」という変換式を使う。Math.PIは円周率π(3.1415927・・)である。
sinの値の範囲は「-1」~「1」の範囲にある。角度を-360°~360°まで変化させてサインのグラフを描きなさい。
結果
