Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
CEBEP
106 / 106 / 9
Регистрация: 21.03.2010
Сообщений: 440
#1

Простановка чисел на координатных осях... - C++

09.04.2011, 15:06. Просмотров 413. Ответов 2
Метки нет (Все метки)

Пишу класс на Qt для вывода графиков, никак не могу придумать нормальный алгоритм для проставления чисел на осях... т.е. левое число double и правое double, нужно взять между ними n (3-10) "красивых" чисел, уверен, алгоритм заезженный и у кого-то есть готовое решение...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2011, 15:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Простановка чисел на координатных осях... (C++):

Вывод координат на осях графика - C++
Необходимо вывести график параметрической функции с осями и, собственно, координатами точек. Т.к. график параметрический, то он может...

Проставить шкалу на осях координат - C++
Здравствуйте. Мне необходимо проставить шкалу на осях координат. Составил следующий код программы: k=800*0.3/(n2-n1); outtextxy (X0,...

найти номера координатных четвертей для трех точек с данными ненулевыми координатами - C++
Может кто помочь доделать програмку плиз.. Описать функцию Quarter(x,y) целого типа, определяющую номер координатной четверти, в...

Найти номера координатных четвертей расположения указанных точек, определив соответствующую функцию - C++
На плоскости задано n точек с действительными ненулевыми координатами (x1, y1), (x2, y2), ... (xn, yn). Найти номера координатных четвертей...

найти номера координатных четвертей для трех точек с данными ненулевыми координатами - C++
Описать функцию Quarter(x, y) целого типа, определяющую номер ко-ординатной четверти, в которой находится точка с ненулевыми вещест-венными...

единица на координатных осях - Free Pascal
спасите!=((( у меня программа строит кривую, заданную в полярных координатах, пересчитывает в декартовы. нужно, чтоб на оси была...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Байт
Эксперт C
16061 / 10330 / 1540
Регистрация: 24.12.2010
Сообщений: 19,459
09.04.2011, 17:28 #2
Что-то в этом роде
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
static int nno[3]={ 1,2,5 };     /* Осевой ряд */
/* --------- */
static int step_razm(double s)  /* Определение шага разметки */
{  int k, kp, j;
 
   kp = k = 1;
   while(s>=k) {
     for(j=0;j<3;j++) { k = nno[j]*kp; if (s<=k) break; }
     if (j<3) break;
     kp *= 10;
   }
   return(k);
}
/*************/
Добавлено через 49 секунд
Доработай под себя
1
CEBEP
106 / 106 / 9
Регистрация: 21.03.2010
Сообщений: 440
10.04.2011, 15:08  [ТС] #3
вот как получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<iostream>
 
double step(double length, int limOfSteps)  /* Определение шага разметки исходя из длины размечаемого отрезка и числа чисел умещаемых на ось */
{
    static const double arrayOfSteps[]={ 1, 2, 2.5, 3, 5, 10, 20, 25, 30, 50 }; /* возможная длинна шага при длине отрезка от 10 до 100 */
    short i = 10/*количество элементов в массиве*/;
 
    double k = 1;//коэффициент при длине отрезка. 10 <= length * k < 100, причём k такое, что в равенстве k = 10^x x - целое.
    while( length * k >= 100 )
        k /= 10;
    while( length * k < 10 )
        k *= 10;
 
    while(i--)
        if(arrayOfSteps[i] * limOfSteps < length * k)
            return arrayOfSteps[++i] / k;
 
    return 0;//возвращается если исходные данные бессмысленны
}
 
void main()
{
    double a = 774., b = 30554.;
 
    double stepLength = step(b - a, 5);
 
    if(stepLength)
        while(a < b)
            std::cout << ( a += stepLength ) << '\t';
}
в целом очень доволен результатом, спасибо...
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2011, 15:08
Привет! Вот еще темы с ответами:

Изобразить график функции в координатных осях - Pascal ABC
Помогите, пожалуйста, изобразить это в паскале. Заранее спасибо!

Если точка не лежит на координатных осях, то вывести 0 - C#
Даны целочисленные координаты точки на плоскости. Если точка не лежит на координатных осях, то вывести 0. Если точка совпадает с началом...

Если точка не лежит на координатных осях, то вывести 0 - Pascal ABC
Даны целочисленные координаты точки на плоскости. Если точка не лежит на координатных осях, то вывести 0. Если точка совпадает с началом...

Построение трёхмерных графиков в одних координатных осях - MathCAD
Здравствуйте. Помогите пожалуйста разобраться, какие действия в маткаде нужно делать чтоб получить эти графики и их пересечение, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru