Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: daimon от Май 29, 2010, 02:21



Название: построение 2D графика - сложности
Отправлено: 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);
}






Название: Re: построение 2D графика - сложности
Отправлено: ieroglif от Май 29, 2010, 02:50
если я правильно понял проблему, то рекомендую нарисовать на бумажке "экран", "точку" в нём, и посоставлять пропорций из которых всё и выйдет..


Название: Re: построение 2D графика - сложности
Отправлено: shirushizo от Май 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;
Должно сработать  ;)