2012-04-06 7 views
0

흐름 레이아웃이 있습니다. 그 안에는 약 900 개의 테이블이 있습니다. 각 테이블은 다른 테이블 위에 쌓여 있습니다. 나는 그것들의 크기를 조절하는 슬라이더를 가지고있어서 흐름 레이아웃 역시 크기를 조절한다.선형 크기 증가가 때때로 1 씩 증가합니다.

문제는 테이블이 선형으로 크기가 조정되어야한다는 것입니다. 기본 크기는 200x200입니다. 그래서, 테이블의 w h는 여기에 200

문제의 예 규모 = 1.0 일 때 :

enter image description here

델타 8 대신 9 일 때 나의 문제는 무엇을 할 수 나는 나의 증가가 항상 선형인지 확인해야합니까?

void LobbyTableManagaer::changeTableScale(double scale) 
    { 
     setTableScale(scale); 
    } 

    void LobbyTableManager::setTableScale(double scale) 
    { 
     scale += 0.3; 
     scale *= 2.0; 

     float scrollRel = m_vScroll->getRelativeValue(); 
     setScale(scale); 
     rescaleTables(); 
     resizeFlow(); 
    ... 



    double LobbyTableManager::getTableScale() const 
     { 
      return (getInnerWidth()/700.0) * getScale(); 
     } 

    void LobbyFilterManager::valueChanged(agui::Slider* source,int val) 
    { 
     if(source == m_magnifySlider) 
     { 

      DISPATCH_LOBBY_EVENT 
      { 
       (*it)->changeTableScale((double)val/source->getRange()); 
      } 
     } 
    } 

간단히 말해, 테이블이 항상 선형 량만큼 증가하도록하고 싶습니다. 모든 몇 번 델타 8이 아닌 당신의 "200 X 표 스케일"값에서

답변

1

봐, 그들은 약 8.8로 올라가고있다 9.

감사 이유를 이해하지 못할. 따라서 정수로 반올림되면 이전 값인 80 %의 값보다 9가 커지고 나머지 20 %는 8이됩니다.

매번 같은 크기가되도록하려면 실제로 정수를 사용해야합니다. 그렇지 않으면 결과가 9.0에 가까워 지도록 축척 변경을 조정해야합니다.

+0

몇 가지 다른 변수가 배율 인수에 따라 달라 지므로 정수를 사용하여 어떻게 할 수 있습니까? – jmasterx

관련 문제