2013-02-20 27 views
3

我正在繪製地圖中的六邊形。由於某些原因,它只會創建一行。我相信我的循環是正確的。如果計數行和列

glVertex3f(((sin(i/6.0*2*PI))/10)+RowOffset,((cos(i/6.0*2*pi))/10)+CollumnOffset,-2); 

我換RowOffsetCollumnOffset然後我得到一個列。

procedure TFCreatemap.menuArea; 
var 
    I: Integer; 
    Row,Collumn: Integer; 
    RowOffset,CollumnOffset: double; 
    TotalRow,TotalCollumn:integer; 
begin 

    Row := 0; 
    Collumn:= 0; 
    CollumnOffset := -0.9; 
    TotalRow := 11; 
    TotalCollumn := 11; 

    while Collumn < TotalCollumn do 
    begin 
     CollumnOffset := CollumnOffset+0.4; 
     RowOffset:= -0.9; 


      while Row < TotalRow do 
      begin 
      RowOffset := RowOffset+ 0.2; 


       glBegin(GL_POLYGON); 
       for I := 0 to 6 do 
       begin 
       glVertex3f(((sin(i/6.0*2*PI))/10)+RowOffset,((cos(i/6.0*2*pi))/10)+CollumnOffset,-2); 
       end; {for} 
       glEnd; 

       Row:= Row+1; 
      end; {end collumns with} 


     Collumn:= Collumn+1; 
    end; {end rows with} 
end; 

也是我的左/上爲-1到1

回答

5

你是不是在你的循環正在重置行,IHMO它應該是這樣的

RowOffset:= -0.9; 
    Row := 0; 
     while Row < TotalRow do 
+0

啊,是的,謝謝 – 2013-02-20 10:03:36