Russian Qt Forum
Ноябрь 24, 2024, 16:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: построение 2D графика - сложности  (Прочитано 2704 раз)
daimon
Гость
« : Май 29, 2010, 02:21 »

есть точка (5,5)
для того, чтобы она нарисовалась нужно определить минимумы и максимумы по осям (!!!но точка одна - мин=макс)=>
нужно добавить число к координате для максимума и отнять это же число для минимума
пример

(5,7)
minX=maxX=5

по логике число должно быть 1
minX=4 maxX=6

minY=maxY=7

по логике число должно быть 1
minY=6 maxY=8


теперь такая (50,70)

по логике число должно быть 10
minX=40 maxX=60


теперь такая (0.1,0.7)

по логике число должно быть 0.1
minX=0 maxX=0.2


теперь такая (0.01,0.07)

по логике число должно быть 0.01
minX=0 maxX=0.02


и т.д. Как организовать универсальным такой алгоритм?
для десятков будет так
Код
C++ (Qt)
if(minX_graph_one==maxX_graph_one)
{
int degree=0;
for(;;)
{
if(abs(int(maxX_graph_one/pow(double(10),degree)))<10) break;
degree++;
}
minX_graph_one -=pow(double(10),degree);
maxX_graph_one +=pow(double(10),degree);
}




Записан
ieroglif
Гость
« Ответ #1 : Май 29, 2010, 02:50 »

если я правильно понял проблему, то рекомендую нарисовать на бумажке "экран", "точку" в нём, и посоставлять пропорций из которых всё и выйдет..
Записан
shirushizo
Гость
« Ответ #2 : Май 29, 2010, 21:39 »

А чем дробные хуже?
if(abs(int(maxX_graph_one/pow(double(10),-degree)))<0.1) break;
или так
if(abs(int(maxX_graph_one/pow(0.1,degree)))<0.1) break;
Должно сработать  Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.068 секунд. Запросов: 20.