大神们,帮忙改个代码,让笛卡尔心形的点一个一个出现解决方法
大神们,帮忙改个代码,让笛卡尔心形的点一个一个出现
让笛卡尔心形的点一个一个出现,每个出现间隔0.1秒
------解决思路----------------------
Thread.sleep(100)有用不
------解决思路----------------------
这个得拿算法来算了
让笛卡尔心形的点一个一个出现,每个出现间隔0.1秒
package ks13209202;
import java.awt.*;
import javax.swing.*;
import java.applet.*;
public class Ksfj01 extends Applet{
int width, height;
Image image;
Graphics g1;
public void init(){
setBackground(Color.black);
this.setSize(450, 450);
width = getSize().width;
height = getSize().height;
image = createImage(width, height);
g1 = image.getGraphics();
}
public void paint(Graphics g) {
g1.clearRect(0, 0, width, height);
g1.setColor(Color.red);
for ( int i = 0; i <= 90; i++ ){
for ( int j = 0; j <= 90; j++ ){
double r = Math.PI / 45 * i * (1 - Math.sin(Math.PI / 45 * j)) * 18;
double x = r * Math.cos(Math.PI / 45 * j) * Math.sin(Math.PI / 45 * i) + width /2; //为了在中间显示,加了偏移量
double y = -r * Math.sin(Math.PI / 45 * j) + height / 4; //为了在中间显示,加了偏移量
g1.fillOval((int) x, (int)y, 2,2);
}
}
g.drawImage(image, 0, 0, this);
}
}
------解决思路----------------------
Thread.sleep(100)有用不
------解决思路----------------------
这个得拿算法来算了
for (int i = 0; i <= 90; i++) {
for (int j = 0; j <= 90; j++) {
double r = Math.PI / 45 * i * (1 - Math.sin(Math.PI / 45 * j))* 18;
double x = r * Math.cos(Math.PI / 45 * j)
* Math.sin(Math.PI / 45 * i) + width / 2; // 为了在中间显示,加了偏移量
double y = -r * Math.sin(Math.PI / 45 * j) + height / 4; // 为了在中间显示,加了偏移量
g1.fillOval((int) x, (int) y, 2, 2);
//在这个里面画,调整参数,写出算法
g.drawImage(image, 0, 0, this);
}
}