Найти диапазон нескольких значений

У меня есть несколько значений точек, которые я должен отобразить на трехмерной диаграмме с осями 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 по отдельности. Как мне этого добиться?

Благодарю.

0

Решение

Вы можете получить показатель степени, округлив десятичный логарифм.

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]