前回の続きです


終了条件を変更する
現在のグラフは x = 6 でぷっつり途切れているので、グラフの端(上端)まで描画するように修正します。今回のグラフなら、xを9くらいまで増やせば端まで伸ばせそうです
x > 9 に変更して実行してみました。端まで描画されましたが・・・なんか変ですね。グラフ上端で折れ曲がってしまっています。これはペン(のスプライト)が画面の外まで移動できないのが原因です
スプライトが画面の外まで移動できるようにする方法がありますが、今回は繰り返しの終了条件を変更する方法で対応したいと思います。x > 9 という判定はこの方眼のサイズに依存したものなので、終了条件としてあまり適切ではありません
終了条件を「端にふれた」に変更します。もう1つ、「x座標を(0)、y座標を(0)にする」ブロックを追加します。このブロックを入れないと、2回目の実行時にうまく動作しません
1回目の実行時にペン(のスプライト)が画面の端まで移動してプログラムが終了します。次の2回目の実行開始時ではすでにペンが画面の端にあるため、いきなり終了条件に合致してしまいます。これを防ぐためには、プログラムの開始時にペンの位置を画面の端以外に移動させる必要があります(初期位置は(0,0)でなくても、そのプログラムに適した位置ならどこでも構いません)
これで比例のグラフの描画のプログラムが完成しました
式を変更してみる
ここまでできれば、式を変更して異なるグラフを描画するのは簡単です。パラメータを変えることで、異なる条件の結果を簡単に出力できるのがプログラムのいいところです
y = 3x のグラフを描画してみます
線がつながっていないので、xの増加量を変更してみます
y = 0.5xだとこうなります
2つのグラフを同時に描画することもできます。グラフの出力処理を2回行なっているだけです
処理スピードを上げる
xの増加量を少なくすると、グラフの描画スピードが落ちてしまいます。増加量を変えながら何度も動作確認したい時にはちょっとイライラしますよね
処理スピードを上げるには2つの方法があります
1つめはScratchのプログラムの実行速度をスピードアップする「ターボモード」を使う方法です
ターボモードのON/OFFは編集メニューにあります
ステージの上に「ターボモード」と表示されていたらターボモード中です。処理が一瞬で終わると思います。ターボモードをやめたい時は編集メニューから解除してください
もう1つは、プログラム自体を改良する方法です。グラフを描画する処理を専用のブロックに切り分け、そのブロックの設定で「画面を再描画せずに実行する」をONにします。これで画面の再描画が頻繁に行われなくなり、処理スピードがアップします
こちらも、あっという間にグラフが描画されるようになります
ターボモードではプログラム全体の処理をスピードアップしますが、専用ブロックを使ったスピードアップは、描画のみのスピードアップです。目的ごとに使い分けてください
比例のグラフ描画は以上です
引き続き、反比例のグラフを描画していきたいと思います
