私はフローレイアウトを持っています。その中には約900のテーブルがあります。各テーブルは、互いに積み重ねられています。私はそれらをサイズ変更するスライダを持っているので、フローレイアウトのサイズも変更されます。線形サイズの増加が1回以上増加することがあります。
問題は、表がリニアにサイズ変更されることです。ベースサイズは200x200です。だから、テーブルのwとhは、ここでは200
は、問題の例は、規模= 1.0である場合:
デルタが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());
}
}
}
要するに、テーブルが常に直線的に増加するようにしたいと思います。私はすべての数回のデルタは、あなたの「200 X表スケール」の値ではなく8 9
おかげ
倍精度浮動小数点数型(double scale factor)に依存するいくつかの変数があることを考えれば、どのように整数で行うことができますか? – jmasterx