質問: y; } } }
回答: for(x=0;x<200;x++) で、0≦x<200の範囲でxが変化して、 y=-x^2+100の計算をしているのですから、その範囲しか表示されない(=放物線の半分しか表示されない)のは当り前です。 数学のグラフを書くときは、 1) 数学での座標(x,y)で計算する 2) 1)で求めた座標(x,y)を画面上の座標(x',y')に変換する という手順を踏むのがよいでしょう。 x' = x方向の縮小拡大率 * x + 数学での(0,0)に対応する画面上の座標でのx'の値 y' = -1 * y方向の縮小拡大率 * y + 数学での(0,0)に対応する画面上の座標でのy'の値 ※ 数学のyと画面のy'は大小と上下の関係が逆になっているので、-1倍します このプログラムでも、実際に変数yには x^2ではなく、 int y=(int)(x*x)*(-1)+100 と ・y方向の縮小拡大率 = 1 ・数学での(0,0)に対応する画面上の座標でのy'の値 = +100 で変換した値が使われています。