gpt4 book ai didi

c++ - 线性大小增加有时最终会增加 1

转载 作者:行者123 更新时间:2023-11-28 08:07:20 25 4
gpt4 key购买 nike

我有一个流式布局。里面有大约 900 张 table 。每张 table 都堆叠在一起。我有一个调整它们大小的 slider ,从而导致流布局也调整大小。

问题是,表格应该线性调整大小。它们的基本尺寸为 200x200。所以当scale = 1.0时,表格的w和h为200。

这是问题的一个例子:

enter image description here

我的问题是 delta 是 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());
}
}
}

简而言之,我想确保表格总是以线性量增加。我不明白为什么每次 delta 都是 8 而不是 9。

谢谢

最佳答案

看看您的“200 X Table Scale”值,它们上升了大约 8.8。因此,当它四舍五入为整数时,大约有 80% 的时间会比前一个值多 9,而在另外 20% 的情况下会多 8。

如果你真的需要每次增加相同的大小,你必须用整数来做所有事情。否则,您必须调整比例变化,使结果更接近 9.0。

关于c++ - 线性大小增加有时最终会增加 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10044157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com