2017-12-05 23 views
-1

을 그립니다 : (타원다시피 손톱을 나타냅니다) 나는 그리기 타원과 문제에 직면하고있어나는 다음과 같이 <a href="https://en.wikipedia.org/wiki/Bean_machine" rel="nofollow noreferrer">Bean Machine</a>을 끌기 위해 노력하고있어 콩 기계

@Override 
protected void paintComponent(Graphics g) { 
    super.paintComponent(g); 

    int width = getWidth(); 
    int height = getHeight(); 

    int xCenter = getWidth()/2; 
    int yCenter = getHeight()/2; 

    g.drawLine(xCenter + 20, yCenter, xCenter + 20, yCenter + 20); // right horizontal line 
    g.drawLine(xCenter, yCenter, xCenter, yCenter + 20); //left horizontal line 
    g.drawLine(xCenter + 20, yCenter + 20, xCenter + 70, yCenter + 110); // right line 
    g.drawLine(xCenter, yCenter + 20, xCenter - 50, yCenter + 110); //left line 
    g.drawLine(xCenter - 50, yCenter + 110, xCenter + 70, yCenter + 110);//base line 

    //draw nails 
    for (int i = 1; i <= nails; i++) { 
     for (int j = 0; j < i; j++) { 
      g.fillOval(xCenter + i, yCenter + 20 * j, (int)(0.09 * xCenter)/3, (int)(0.09 * yCenter)/3); 
     } 
    } 
} 

을, 나는 암갈색, 제대로하는 방법을 알고

다음은 내가 얻은 것입니다.

enter image description here

예상 출력은 그래도 난 모두 알고있다.

+0

왜 내려 투표 :/ – user1058652

+0

무엇의 결과 값입니다 '(int) (0.09 * xCenter)/3'? –

+0

@ d.j.brown 네일 (타원형)의 높이와 너비를 나타냅니다. 아무 문제가없는 것 같습니다. – user1058652

답변

1

여기에 몇 가지 문제가 있습니다

  • fillOval(xCenter + ifillOval(xCenter + 20 * i 할 필요가있다. 이것은 왜 당신의 손톱이 함께 찌그러지고 서로 겹치기 때문에 모든 줄이 다른 줄보다 약간 길어 지는지를 설명합니다.
  • 지금은 맨 위에 더 많은 못이 있습니다. 바깥 쪽 루프를 뒤로 돌리면 피라미드를 돌릴 수 있습니다.
  • 손톱이 너무 작아서 둥근 모서리가 없기 때문에 네일처럼 보입니다.

(가) X fillOval의 좌표를 고정하고 (0.29 대신 0.09의) 큰 일 점을, 그것은 다음과 같습니다

enter image description here