2000年5月24日更新(新規作成)
関谷トップページへ
CG2001 トップページへ
このアプレットの実行
Gnorm.java Javaでのグラフィックス(正規分布曲線)
/* gnorm.java Javaでのグラフィックス(正規分布曲線) 1998。7.16 関谷*/
import java.applet.Applet; // Javaの言語パッケージ類
import java.awt.*; // Graphics; // グラフィックスクラス
import java.lang.Math; // 数学サブクラス
import java.lang.String; // ストリングクラス
import java.util.Date; // 時間の取得
public class Gnorm extends Applet // JavaでのAppletクラス
{
int origx=250,origy=250; /* 原点のスクリーン座標 */
int scalex=50,scaley=450; /* スクリーン座標の倍率 */
int gx,gy, gxold, gyold; /* 点の座標 */
double u, p, x, y ; /* u:確率変数、p:確率密度関数、軸の目盛り用*/
int i;
double pai=3.141596;
String axis_val; /* 軸の目盛り数値 */
Prob pr; // Prob: class for percent point calcu.
public void paint(Graphics g){ // C 言語でのmain()の本体部分
Date d=new Date(); // 現在年月日・時刻の取得
g.drawString(d.toString(),20,45); // dを文字列に変換して表示
g.setColor(Color.blue);
g.setFont(new Font("Serif",Font.PLAIN,20));
g.drawString(" 正規分布曲線 (Java AppletViewer・Applet作図)",100, 24);
g.setColor(Color.green);
g.setFont(new Font("Dialog",Font.BOLD,24));
g.drawString("by 関谷順太",380, 50);
g.setColor(Color.black);
g.setFont(new Font("SansSerif",Font.PLAIN,16));
g.drawLine(origx-230,origy,origx+230,origy); /* x軸に線を引く */
g.drawLine(origx,origy,origx,origy-210); /* y軸に線を引く */
for(i=-80; i<81; i++){ /* 正規分布曲線の計算,plot */
u = 0.05*i; p = 1.0/Math.sqrt(2.0*pai) * Math.exp(-u*u/2.0);
gx = origx + (int)(scalex * u);
gy = origy - (int)(scaley * p);
if( i != -80 )
g.drawLine(gxold,gyold,gx,gy);
gxold = gx; gyold = gy;
}
for(i=-4; i<5; i++){ /* x axiss scale plot */
x = i;
gx = origx + (int)(scalex * x);
g.drawLine( gx, origy, gx, origy+4);
axis_val = String.valueOf(x);
g.drawString(axis_val, gx-9, origy+17);
}
g.drawString("u: 連続型確率変数", gx-70, origy+30);
for(i=0; i<5; i++){ /* y axiss scale plot */
y = i / 10.0;
gy = origy - (int)(scaley * y);
g.drawLine( origx, gy, origx - 4, gy);
axis_val = String.valueOf(y);
g.drawString(axis_val, origx-25, gy+5);
}
g.drawString("y: 確率密度関数", origx, origy-195);
} // end of paint()
} // end of class Gnorm