2014-12-05 1 views
1

Game of Life 응용 프로그램을위한 사각형 개체 그리드를 그리려고합니다. 이 단계에서 메신저는 기본 그리드를 작동 시키려고합니다. 결국 라이브 및 죽은 셀에 대한 부울 배열을 평가하고 이에 따라 페인트 스타일을 변경합니다. 테스트 목적으로 코드를 최대한 단순화했습니다. 메신저 패딩없이 100x100 직사각형의 9x6 그리드를 그리려고합니다.이상한 결과를 얻는 drawRect를 사용하여 안드로이드에 격자 그리기 시도

paintGrid.setStyle(Paint.Style.STROKE); //sets paint style for grid squares 
    int gm = 100; //gridMultiplier determines rectangle size in this case 100x100 

    for(int r = 0; r < 9; r++) //paints grid with 9 rows 
    { 
     for(int c = 0; c < grid[0].length; c++) //6 columns 
     { 
      top = r*gm; //sets LEFT side 
      bottom = top+gm; //sets RIGHT side 
      left = c*gm; 
      right = left+gm; 
      Log.v(LOGTAG, "left: " + left + " right: "+ right+ " top: " + top + 
        " bottom: " + bottom); //testing 
      canvas.drawRect(left, top, bottom, right, paintGrid); //paints dead Cell 
     } 
    } 

내가이 먼저 바로, 다음 두 번째 줄 왼쪽 맨 위의 행을 그려 그리드를 그릴, 및 완료 될 때까지 계속 기대 :

여기 내 코드입니다. Instead I get this for an output.

테스트에 사용하는 logcat 출력은 루프가 올바르게 작동하고있는 것 같습니다. 나는 : 왼쪽 : 0 오른쪽 100 상단 0 하단 100 왼쪽 : 100 오른쪽 200 상단 0 하단 100 왼쪽 : 200 오른쪽 300 상단 0 하단 100 왼쪽 : 300 오른쪽 400 상단 0 하단 100 왼쪽 : 400 오른쪽 500 상단 0 아래 100

왼쪽 0 바로 100 100 아래 200 내 기지에서 등

임은 여기서 끝 (200) 이 200 바로 300 100 바닥 (200)를 왼쪽에서 오른쪽 200 100 아래 100 ... 왼쪽! 나는 2D 어레이가 행 메이저 (main)라는 인상을 받고 있었기 때문에 그 셋업을 유지하려고 노력했다. 어떤 제안? 미리 감사드립니다!

답변

1

오른쪽 및 아래 인수를 전환했습니다. 올바른 순서는 왼쪽, 위, 오른쪽, 아래입니다. 안드로이드가 right> left and bottom> top을 필요로하기 때문에 생성 된 결과이거나 사각형을 전혀 그리지 않습니다. 그래서 당신의 코드는 대칭 = 오른쪽으로 인해 관련이없는 대각선에만 그려줍니다.

+0

감사합니다 !!!! 나는 어리석은 무엇인가 놀라지 않았다. – agarfin

관련 문제