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