📄 sinpanel.java
字号:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JPanel;
public class SinPanel extends JPanel implements Runnable {
/**
*
*/
private static final long serialVersionUID = 4648858808935989030L;
private double a;
private double b;
private double c;
public SinPanel() {
a = 50.0;
b = 50.0;
c = 0.0;
}
@Override
public void run() {
// TODO Auto-generated method stub
a = getSize().width/30;
b = getSize().height/4;
while (true) {
repaint();
if ((c += .1) > 2 * Math.PI * a)
c = 0;
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
@Override
public void paint(Graphics g) {
update(g);
}
@Override
public void update(Graphics g) {
Dimension d = getSize();
g.clearRect(0, 0, d.width, d.height);
g.setColor(Color.black);
g.drawRect(0, 0, d.width-1, d.height-1);
g.drawString("正弦波", d.width/2-20, 50);
for (int x = 0; x < d.width; x++) {
g.drawLine(x, (int) (f(x, c)), x + 1, (int) (f(x + 1, c)));
}
}
private double f(double x, double c) {
return (Math.sin(x / a + c) * b + getSize().height / 2);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -