查找多个值的范围

Find range of multiple values

本文关键字:范围 查找      更新时间:2023-10-16

我有几个点值,必须在带有x、y和z轴的三维图表中显示。问题是,如果其中一个轴的范围明显大于另一个轴,则无法正确显示点。为了避免这种情况,我需要获得一个公共范围内的所有x,y,z值。

e.x-每个轴的最大值,

x - 5.8
y - 0.6
z - 43700

我需要的是

x - 5.8
y - 6.0 *10^-1 
z - 4.37 *10^4

其中,我只使用值5.8、0.6和4.37来绘制图中的点,但在轴标题中使用10的幂来指示轴的实际值范围。(例如,在y轴中,名称显示为"y轴(10^-1)")。要做到这一点,我需要6.0和10^-1值分别。我怎样才能做到这一点?

谢谢。

您可以通过对十进制对数进行四舍五入来获得指数。

void normalized_notation(double x, double& a, int& exponent)
{
  exponent = (int)floor(log10(x));
  a = x / pow(10, exponent);
}