2013-02-20 28 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