У меня есть несколько значений точек, которые я должен отобразить на трехмерной диаграмме с осями 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);
}
Других решений пока нет …