フローレイアウトがあります。その中には約900のテーブルがあります。各テーブルは積み重ねられています。それらのサイズを変更するスライダーがあり、フローレイアウトのサイズも変更されます。
問題は、テーブルのサイズを直線的に変更する必要があることです。基本サイズは200x200です。したがって、scale = 1.0の場合、テーブルのwとhは200です。
問題の例を次に示します。
私の問題は、デルタが9ではなく8の場合です。増加が常に線形になるようにするにはどうすればよいですか?
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());
}
}
}
つまり、テーブルが常に直線的に増加するようにしたいのです。デルタが9回ではなく8回になる理由がわかりません。
ありがとう