上课老师演示了一个applet。但不是很明白,希望大家帮帮忙~!解析解析一下
import java.awt.*;
import java.applet.*;
import static java.lang.Math.*;
public class sinApplet extends Applet
{
double x0=100,y0=200,x,y;
public void paint(Graphics g)
{
g.setColor(Color.red);
g.drawLine(100, 200, 750, 200);
g.drawLine(100, 30, 100, 370);
g.setColor(Color.green);          
for(x=100;x<700;x+=0.001)
{
y=(int)(200-150*Math.sin(8*PI*(x-100)/600)+0.5);   //不明白,1、为什么(int),()然后加类型是什么意思?2、y中的数字有什么含义?3、为什么我把sin改为cos,画出来的图像和sin的一样?
g.drawLine((int)x0, (int)y0, (int)x, (int)y); 
x0=x;
y0=y;
}
}
}

解决方案 »

  1.   

    已解决的
    问题1:之前执行没有效果,原因是我只是将修改好的*.java文件重新编译后,然后执行嵌入applet的html文件。可能系统缓冲或IE缓冲问题,导致,html显示的结果还是首次编译时的结果。然后,我在cmd中用appletviewer测试applet程序,程序所修改的,从新编译后结果是不一样的。问题2:(int)的问题,我在百度知道里提问了,有个网友回答,是强制转换类型。可能在我听课的时候没认真听,所以这么重要的知识我都不知道。希望大家见谅。问题3:
    y=(int)(200-150*Math.sin(8*PI*(x-100)/600)+0.5);  中,200为sin函数图像的上下平移的值。因为,定义了坐标轴的原点的(100,200)
    8是sin函数的振幅。
    100是函数的起点位置。
    我只是观察到这些结果。希望大家能帮我详细地解析一下。希望我自己的回复,能够对之后看到我的贴的人有一点帮助。