создаю график прямой леймниската в java, она должна выглядеть так:
При рисовании рисуется весь график, но потом пропадает правая его часть, как это можно исправить?
import java.awt.*;
class FillPolygonCanvas extends Canvas{
public int x0 = 200;
public int y0 = 200;
public int a = 100;
public double y;
public double x;
public double r;
public double fi=-(Math.PI/4);
public void paint(Graphics g){
Polygon poly = new Polygon();
Polygon poly1 = new Polygon();
while (fi<=Math.PI/4){
r=a*Math.sqrt(2*Math.cos(2*fi));
x=r*Math.cos(fi);
y=r*Math.sin(fi);
if(fi==-Math.PI/4){
poly1.addPoint(x0,y0);
}else{
poly1.addPoint(x0+(int)x,y0-(int)y);
}
fi=fi+0.0001;
g.drawPolygon(poly1);
}
fi=3*Math.PI/4+0.0001;
while (fi<=5*Math.PI/(4-0.0001)){ //left
r=a*Math.sqrt(2*Math.cos(2*fi));
x=r*Math.cos(fi);
y=r*Math.sin(fi);
if(fi==3*Math.PI/4+0.0001){
poly.addPoint(x0,y0);
}else{
poly.addPoint(x0+(int)x,y0-(int)y);
}
fi=fi+0.0001;
}
g.drawPolygon(poly);
}
}
class MyFrame extends Frame{
public MyFrame(){
super("Graphics");
// setLayout(new GridLayout(3,3));
add(new FillPolygonCanvas());
setSize(500,300);
setVisible(true);
}
}
public class Main{
public static void main(String[] args) {
Frame f = new MyFrame();
}
}