에서 올바른 프레임 센터링을 얻으므로 프레임을 중앙에 배치하는 데 문제가있어서 전체 그래프가 화면에 표시됩니다. 현재 프로그램을 실행할 때 좌표계의 x 값은 정확한 범위이지만 프레임이 그래프가 그려지는 수백 픽셀 위의 중앙에 위치하기 때문에 그래프를 간신히 볼 수 있습니다. 공용 클래스 시그마 {그래픽 패키지
static Scanner input = new Scanner(System.in);
public static int Sigma(int s){
int a = 0;
for(int i=1;i<=s;i++){
if(s%i==0)
a = a + i;
}
return a;
}
public static void main(String[] args) {
System.out.println("Please enter the number you want to perform the sigma function on");
int s = input.nextInt();
System.out.print(Sigma.Sigma(s) +" is the sum of all the divisors of your input");
}
}
I :
public static int startx = 1;
public static int endx = 500;
static Scanner input = new Scanner(System.in);
int WIDTH = 0;
int HEIGHT = 0;
public GraphSigma(int WIDTH, int HEIGHT) {
this.WIDTH = WIDTH;
this.HEIGHT = HEIGHT;
}
// Draw your spiral here!!!
// You'll need to use a FOR loop to calculate the
// points on the spiral
public void paintSigma(Graphics g){
int prevX=startx;
int prevY=Sigma.Sigma(startx);
Graphics2D g2 = (Graphics2D) g;
g2.translate(0, Sigma.Sigma(endx));
g2.scale(1,-1);
if (endx-startx < 50)
for (int i = startx; i <= endx; i++) {
int x = i;
int y = Sigma.Sigma(i);
g.drawLine(0+prevX, 0+prevY, x, y);
prevX=x;
prevY=y;
};
if (51 < endx-startx && endx-startx < 300)
for (int i = startx; i <= endx; i+=2) {
int x = i;
int y = Sigma.Sigma(i);
g.drawLine(0+prevX, 0+prevY, x, y);
prevX=x;
prevY=y;
};
if (301 < endx-startx && endx-startx < 1000)
for (int i = startx; i <= endx; i+=4) {
int x = i;
int y = Sigma.Sigma(i);
g.drawLine(0+prevX, 0+prevY, x, y);
prevX=x;
prevY=y;
};
if (1000<endx-startx)
for (int i = startx; i <= endx; i+=10) {
int x = i;
int y = Sigma.Sigma(i);
g.drawLine(0+prevX, 0+prevY, x, y);
prevX=x;
prevY=y;
};
}
// This special method is automatically called when the scene needs to be drawn.
public void paintComponent(Graphics g) {
paintSigma(g);
}
public static void main(String[] args) {
// Graphics window size
int WINDOW_WIDTH = endx-startx+20;
int WINDOW_HEIGHT = endx;
JFrame frame = new JFrame();
frame.setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
frame.setTitle("Sigma Function");
GraphSigma d = new GraphSigma(endx-startx+20, Sigma.Sigma(endx));
frame.add(d);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
내가 불러 오전 시그마 방법은 다른 클래스에있다가, 여기에 코드입니다 : 여기 내 코드입니다 정직하게 이것을 정확히 센터링하는 법을 모르겠다. 나는 방법이 없다? 나는 변수를 망치고 있었고 프레임이 어떻게 중심에 위치 하는지를 바꾸지 않는 것 같습니다. 정말 고마워!