Java 正弦波_s zxb_s .java

程序设计:谢山水 2003.11.11.


// 正弦波_s zxb_s.java 程序设计: 谢山水 2003.11.11.

import java.applet.*; //导入java语言小程序applet包的所有类
import java.awt.*; //导入java语言awt抽象窗口工具包的所有类

// 1.正弦波zxb_s类继承Java小程序Applet类
public class zxb_s extends Applet{ 

// 2.定义求正弦函数的方法,设置正弦波位置,波峰数,幅度,窗口400*400
double fs(double x){// 上水平正弦波
return 0.07*size().height+(Math.sin(x))*0.012*size().height;
}

double fr(double y){// 右垂直正弦波
return 0.93*size().width+(Math.sin(y))*0.015*size().width;
}

double fx(double x){// 下水平正弦波
return 0.93*size().height+(Math.sin(x))*0.012*size().height;
}

double fl(double y){// 左垂直正弦波
return 0.07*size().width+(Math.sin(y))*0.015*size().width;
}

double fz(double x){// 中心水平正弦波
return 0.5*size().height-(Math.sin(x/10))*0.07*size().height;
}


// 3.定义画图方法
public void paint(Graphics g){

// 4.输出文字
Font fnt20 = new Font("TimesRoman",Font.PLAIN,20);
Font fnt35 = new Font("宋体",Font.BOLD,35); // 创建字体对象

g.setFont(fnt20); // 设置当前字体
g.setColor(new Color(255,0,255));
g.drawString("Java 语言",160,80); // 紫字

g.setFont(fnt35); // 设置当前字体
g.setColor(new Color(0,0,255));
g.drawString("图形程序设计",90,130);// 蓝字

g.setFont(fnt20); // 设置当前字体
g.setColor(new Color(255,255,0));
g.drawString("程序设计: 谢山水",120,300); // 黄字
g.drawString("2003年11月11日",140,340);


// 5.循环设置颜色
for(int i=0;i<3;i++){
switch((int) i){
case 0:
g.setColor(new Color(0,0,255)); //设置画笔为蓝色
setBackground(Color.yellow); //设置背景为黄色
break;
case 1:
g.setColor(new Color(255,255,0)); //设置画笔为黄色
setBackground(Color.orange); //设置背景为橙色
break;
case 2:
g.setColor(new Color(255,0,0)); //设置画笔为红色
setBackground(new Color(133,200,0));//设置背景为绿色
break;
}

// 6.绘制正弦波
for(double x=0.07*size().width;x<0.93*size().width;x+=0.01){ 
// 上水平正弦波
g.drawLine((int)x,(int)fs(x),(int)x+1,(int)fs(x+1));
}

for(double y=0.07*size().height;y<0.93*size().height;y+=0.01){
// 右垂直正弦波
g.drawLine((int)fr(y),(int)y,(int)fr(y+1),(int)y+1);
}

for(double x=0.93*size().width;x>0.07*size().width;x-=0.01){
// 下水平正弦波
g.drawLine((int)x,(int)fx(x),(int)x+1,(int)fx(x+1));
}

for(double y=0.93*size().height;y>0.07*size().height;y-=0.01){
// 左垂直正弦波
g.drawLine((int)fl(y),(int)y,(int)fl(y+1),(int)y+1);
}

// 绘制中心线
g.drawLine(43,200,357,200);

for(double x=0;x<314;x+=0.01){
// 中心水平正弦波
for (int h=0;h<3;h++){
g.drawLine((int)x+43,(int)fz(x)+h,(int)x+44,(int)fz(x+1)+h);
}
}

}
}
}