Java 换笔4叶曲线 hb4yqx.java

程序设计:谢山水 2003.10.1.


// 换笔4叶曲线 hb4yqx.java 程序设计: 谢山水 2003.10.1.
// Java 多叶曲线:线宽、颜色、分段颜色、背景色、花叶数、显示速度
// 画图方向:向左画、向右画、向上画、向下画
// 位置:水平、垂直多条 Java 多叶曲线

import java.awt.*;

public class hb4yqx extends Frame {
// 图形程序设计 hb4yqx 类继承框架 Frame
public hb4yqx() {
setLayout(new BorderLayout()); // 设置边界布局
DrawPanel display = new DrawPanel();// 创建画图面板实例 display
add("Center", display); // 对中加入画图面板 display
}

public boolean handleEvent(Event e) {
switch (e.id) {
case Event.WINDOW_DESTROY: // 关闭窗口,终止程序
System.exit(0);
return true;
default:
return false;
}
}

public static void main(String args[]) {
hb4yqx JavaTxcxsj = new hb4yqx();
JavaTxcxsj.setTitle("Java 语言图形程序设计 换笔4叶曲线 fsxss 2003.10.1.");
JavaTxcxsj.setSize(800,600);
JavaTxcxsj.show();
}
}

class DrawPanel extends Panel {
int hy=2,x0=400,y0=270,xl=300,yl=240;// 4花叶,x,y原点,轴向长度

double PI=3.141596,j,j1=PI/3333;
double fx(double j){ //定义求x轴投影和x轴坐标的方法
return x0+(Math.cos(hy*j)*Math.cos(j))*xl;
// 调整x轴坐标原点,花叶数,x轴投影,花叶x轴向长度

}
double fy(double j){ //定义求y轴投影和y轴坐标的方法
return y0+(Math.cos(hy*j)*Math.sin(j))*yl;
// 调整y轴坐标原点,花叶数,y轴投影,y轴坐标,花叶y轴向长度
}

public void paint(Graphics g) {
g.setColor(new Color(255,0,155)); //设置画笔为紫色
g.drawRect(5,5,780,540); // 画图纸外边框

g.setColor(new Color(0,133,255)); //设置画笔为蓝色
g.drawRect(15,15,760,520); // 画图纸内边框
g.drawRect(16,16,758,518);
g.drawRect(17,17,756,516);
g.drawRect(18,18,754,514);

for(int i=0;i<3;i++){
switch(i){
case 0:
g.setColor(new Color(0,133,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,155)); //设置画笔为红色
setBackground(new Color(0,190,0)); //设置背景为绿色
break;
}

for (j=0;j<=2*PI;j+=j1){ //绘制函数曲线图形
g.drawLine((int)fx(j),(int)fy(j),(int)fx(j+j1),(int)fy(j+j1));
g.drawLine((int)fx(j),(int)fy(j)+1,(int)fx(j+j1),(int)fy(j+j1)+1);
g.drawLine((int)fx(j),(int)fy(j)+2,(int)fx(j+j1),(int)fy(j+j1)+2);
g.drawLine((int)fx(j),(int)fy(j)+3,(int)fx(j+j1),(int)fy(j+j1)+3);
g.drawLine((int)fx(j),(int)fy(j)+4,(int)fx(j+j1),(int)fy(j+j1)+4);
g.drawLine((int)fx(j),(int)fy(j)+5,(int)fx(j+j1),(int)fy(j+j1)+5);
g.drawLine((int)fx(j),(int)fy(j)+6,(int)fx(j+j1),(int)fy(j+j1)+6);
g.drawLine((int)fx(j),(int)fy(j)+7,(int)fx(j+j1),(int)fy(j+j1)+7);
g.drawLine((int)fx(j),(int)fy(j)+8,(int)fx(j+j1),(int)fy(j+j1)+8);
}
}
}
}