gpt4 book ai didi

c++ - c++中的图轴校准

转载 作者:搜寻专家 更新时间:2023-10-31 01:50:32 24 4
gpt4 key购买 nike

我正在二维图形中绘制一些 float 据,我需要将图形的轴校准为看起来整洁的小单位。显然,这个单位根据数据的大小而变化。我试图找到一种将轴划分为漂亮数字的好方法。例如,如果我的数据来自-1.3345 到 +5.882 可以以 1.0 或 0.5 为单位进行除法。如果我的数据从 -100 到 800 将轴分成 100 或 50 的单位。(我希望这是有道理的)现在我将范围(最大值 - 最小值)除以某个固定整数并得到单位但是给了我长尾随数字的丑陋数字。有什么聪明的方法可以做到这一点吗?

最佳答案

计算良好步长的一种方法是找到范围长度的最高有效数字的值(即 diff = maxVlaue - minValue),并将其用作您的步长。要计算最高有效数字的值,请使用这个简单的公式:

pow(10, floor(log10(diff)))

这取差值的十进制对数,舍弃小数部分(如果有),并计算该对数的 10 次方。对于 7.2165 的差异,计算将返回 1;对于 721.65,它将返回 100,依此类推。

此计算的一个缺点是 9.99 的 diff 和 1.001 的 diff 的网格步长相同。解决此问题的一种方法是计算您为该步骤获得的网格线数,如果线数不足(例如,少于三条),则将步长减少十倍。

关于c++ - c++中的图轴校准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14948693/

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