我有几个点值,我必须在带有x,y和z轴的3D图表中显示。问题是如果其中一个轴范围明显大于另一个轴,则这些点未正确显示。为了避免这种情况,我需要将所有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,6.6和4.37绘制图中的点,但在轴标题中使用10的幂来指示轴的实际值范围。 (例如,y轴名称显示为“y轴(10 ^ -1)”)。为此,我需要分别使用6.0和10 ^ -1值。我怎样才能做到这一点?
感谢。
答案 0 :(得分:2)
您可以通过舍入十进制对数来获得指数。
void normalized_notation(double x, double& a, int& exponent)
{
exponent = (int)floor(log10(x));
a = x / pow(10, exponent);
}