首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

读程序遇到点有关问题,

2013-09-06 
读程序遇到点问题,请教各位。。。import java.applet.*import java.awt.*public class DrawFigures extends

读程序遇到点问题,请教各位。。。


import java.applet.*;
import java.awt.*;

public class DrawFigures extends Applet {

int w,h,EX,EY;

public void init() {
w = Integer.parseInt(getParameter("width"));
h = Integer.parseInt(getParameter("height"));
EY = (int)((h-30)/2);
EX = (int)((w-30)/4/Math.PI);
}

final static int n = 1000;

public void paint (Graphics g) {
g.setColor(Color.green);
g.drawLine(0, h/2, w, h/2);
g.drawLine(w/2,0,w/2,h);
g.drawLine(w-10, h/2-10, w, h/2);
g.drawLine(w-10, h/2+10, w, h/2);//画X轴的箭头?
g.drawLine(w/2, 0, w/2-10, 10);
g.drawLine(w/2, 0, w/2+10, 10);//画Y轴的箭头
int x,y,m,lenx,leny,d;
m = 8; lenx = (w-30)/8;
d = 8; leny = (h-30)/8;
x = w/2;
y = h/2;
double db = 0.5;
int Int = 1;
for(int i=0; i<5; i++) {
g.drawLine(x+i*lenx,h/2,x+i*lenx,h/2-10);
g.drawLine(x-i*lenx,h/2,x-i*lenx,h/2-10);

}
for(int i=1; i<5; i++) {
String s2 = String.valueOf(db);
g.drawString(s2+"π",x+i*lenx-10,h/2+20);
g.drawString(s2+"π",x-i*lenx-10,h/2+20);
db = db+0.5;
for(int q=1; q<5; q++){
g.drawString("-",x-q*lenx-12,h/2+20);
}
}
for(int i=0; i<5; i++) {
g.drawLine(w/2,y+i*leny,w/2+10,y+leny*i);
g.drawLine(w/2,y-i*leny,w/2+10,y-leny*i);
}
for(int i=1; i<5; i++) {
String s = Integer.toString(Int);//int类型转换为String类型
g.drawString(s,w/2+15,y-leny*i+2);
g.drawString(s,w/2+15,y+leny*i+2);
Int= Int + 1;
for(int q=1; q<5; q++) {
g.drawString("-",w/2+12, y+q*leny+2);
}
}
g.drawString("0",w/2+10,h/2+20);
g.drawString("X",w-10,h/2-20);
g.drawString("y",w/2+10,10);

double h1 = 4.0*Math.PI/n;
double x1=-2*Math.PI,y1=Math.sin(x1),x2,y2;
g.setColor(Color.red);
for(int i=0; i<n; i++) {
x2 = x1+h1;
y2 = Math.sin(x2);
g.drawLine((int)(x1*EX)+w/2,(int)(h/2)-(int)(EY*y1),(int)(x2*EX)+w/2,(int)(h/2)-(int)(y2*EY));

x1 = x2;
y1 = y2;
}
}

public static void main(String args[]) {
new DrawFigures();
}


}



程序69行(g.drawLine((int)(x1*EX)+w/2,(int)(h/2)-(int)(EY*y1),(int)(x2*EX)+w/2,(int)(h/2)-(int)(y2*EY));)读不懂,谁能帮我理解一下啊?都表示那些点啊,是从(-2PI,0)点开始画么?
还有EY = (int)((h-30)/2);EX = (int)((w-30)/4/Math.PI);干嘛要-30啊?
[解决办法]
drawLine(int x1,int y1,int x2,int y2)
四个数值,前两者代表起始位置的坐标,后两个代表结束位置的坐标。

-30,确定开始的位置。
比如实现一个红色小球从界面落下来,你需要减去30(球的直径),让你能够看到他从无到有的过程。
这里不清楚,乱。

热点排行