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

Работа с графикой - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка по полям структуры http://www.cyberforum.ru/cpp-beginners/thread229165.html
Необходимо сортировать параграфы по возрастанию. Структура имеет вид: struct gloss { char term; bool flag; int nom; } gloss point Флаг необходим для пометки параграфа. Т.е. #Параграф 1 (это явл-ся параграфом)
C++ Записать логическое выражение с помощью сравнения логических величин Пусть Bool b1, b2, b3, b4; Записать оператор if и операторы присваивания, которые выполняют те же действия, что и следующий оператор: b1= b2 && b3; ------------------------------------------------------------------------------------------------------------- 12. Записать следующее логическое выражение, используя логические операции и не используя сравнение логических величин: ! (y > x) > (x... http://www.cyberforum.ru/cpp-beginners/thread229164.html
Выровнять массив строк по ширине экстента C++
Подскажите пожалуйста, как возможно выровнять массив строк по ширине экстента(например экстент равен 60)) что-то не выходит
Вычислить сумму факториалов всех нечетных чисел от 1 до 9 C++
C++ for dos v.3.1. вычислить сумму факториалов всех нечетных чисел от 1 до 9 вот что у меня получилось (вернее на что меня хватило) #include <stdio.h> #include <conio.h> #include <math.h> #include <stdlib.h> #include <iostream.h> void fakt(float k) {
C++ Во в введённом массиве отсортировать по возрастанию все элементы на нечётных позициях http://www.cyberforum.ru/cpp-beginners/thread229104.html
Помогите решить задачу на вижал с++: во в введённом массиве(размер задаёться пользователем) отсортировать по возрастанию все элементы на нечётных позициях массива.
C++ Урезание количества переменных GetVolumeInformation до минимума Добрый день. Решил написать сюда для начинающих со своим туповатым вопросом. Вывожу серийник жд через функцию GetVolumeInformation. Ради интереса решил уменьшить количество объявлений переменных до минимума оставив лишь переменную для самого серийного номера. Все это делалось ради практического любопытства. Про параметры к функции читал(заранее говорю). Код стал таким: unsigned long VSNumber;... подробнее

Показать сообщение отдельно
Northex
0 / 0 / 0
Регистрация: 14.12.2010
Сообщений: 14
15.01.2011, 14:17     Работа с графикой
ЗДравствуйте нужна помощь. среда Borland C 3.1
задание такое

Дана аффинная система координат (γ=60̊̊̊ ) и функция y(x)=x*x
Построить ее график.

причем:
В задании используются параметры Xmin, Xmax, Ymin, Ymax, x, y. Эти параметры заданы в декартовой системе координат. Если в вашем задании система координат аффинная то необходимо получить значение этих параметров в декартовой системе координат.

я написал программу но он рисует мне график под углом а должен в декартовой (угол между осями ОХ и ОУ 90 градусов)
помогите пожалуйста.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <graphics.h>
double ChoiseStep (double vmin, double vmax)
{
   double dv, exp, mnt, kf;
   dv=fabs(vmax-vmin);
   dv=fabs(vmax-vmin);
   exp=pow10(floor(log10(dv)));
   mnt=dv/exp;
   if (mnt<= 1.5) kf = 0.25;
   else if (mnt<=3.0) kf=0.5;
   else if (mnt > 6.0) kf=2.0;
   else kf=1.0;
   return exp*kf;
}
void main(void)
{
     int gd = 0, gdmode = 0;
     int wndSizeX, wndSizeY;
     int left, bottom, Xscreen, Yscreen;
     double scaleX, scaleY;
     int  Xscreen2, Yscreen2;
     int screenSizeX, screenSizeY;
     double const PI=3.14;
     double x, y, stepX, stepY, xa, ya,i;
     double minX, maxX;
     double minY, maxY;
   
     initgraph(&gd, &gdmode,"" );
 
      if (graphresult()!=0 )
       {
        printf("ERROR grafi4eskogo regima");
        getch();
        return;
       }
     cleardevice();
     printf("Input minX=");
     scanf("%lf", &minX);
     printf("Input maxX=");
     scanf("%lf", &maxX);
       if (minX>maxX)
        {
         printf("ERROR minX < maxX");
         getch();
         return;
        }
     screenSizeX=getmaxx()+1;
     screenSizeY=getmaxy()+1;
     wndSizeX=screenSizeX*0.8;
     wndSizeY=screenSizeY*0.8;
     left=(screenSizeX-wndSizeX)/2;
     bottom=(screenSizeY+wndSizeY)/2;
     
     
     setcolor(LIGHTGRAY);
     setlinestyle(DOTTED_LINE, 0, NORM_WIDTH);
     stepX=ChoiseStep(minX, maxX);
 
     ya=minX*minX;
     minY=ya*sin(PI/3);
     maxY=minY*cos(PI/3);
      for (i=minX; i<maxX; i=i+0.001)
       {
        ya=i*i;
        y=ya*sin(PI/3);
        if (y<minY) minY=y;
        if (y>maxY) maxY=y;
       }
     scaleX=wndSizeX/(maxX-minX);
     scaleY=wndSizeY/(maxY-minY);
 
      for(x=ceil(minX/stepX)*stepX; x<maxX; x=x+stepX)
       {
        Xscreen=left+(x-minX)*scaleX;
        line(Xscreen, bottom-wndSizeY, Xscreen, bottom);
       }
     stepY=ChoiseStep(minY, maxY);
      for(y=ceil(minY/stepY)*stepY; y<maxY; y=y+stepY)
       {
        Yscreen=bottom-(y-minY)*scaleY;
        line(left, Yscreen, left+wndSizeX, Yscreen);
       }
     ya=minX*minX;
     x=minX+ya*cos(PI/3);
     y=ya*sin(PI/3);
     Xscreen=left+(x-minX)*scaleX;
     Yscreen=bottom-(y-minY)*scaleY;
     setcolor(GREEN);
     setlinestyle(SOLID_LINE, 0, NORM_WIDTH);
 
      for(xa=minX+(maxX-minX)/1000; xa<=maxX; xa=xa+(maxX-minX)/1000)
       {
        ya=xa*xa;
        x=xa+ya*cos(PI/3);
        y = ya*sin(PI/3);
        Xscreen2=left+(x-minX)*scaleX;
        Yscreen2=bottom-(y-minY)*scaleY;
         if (((Yscreen>bottom-wndSizeY && Yscreen<bottom) && (Xscreen>left && Xscreen<left+wndSizeX)) ||
            ((Yscreen2>bottom-wndSizeY && Yscreen2<bottom) && (Xscreen2>left && Xscreen2<left+wndSizeX)))
            line(Xscreen, Yscreen, Xscreen2,Yscreen2);
            Xscreen=Xscreen2;
            Yscreen=Yscreen2;
        }
     setcolor(WHITE);
     setlinestyle(SOLID_LINE, 0, THICK_WIDTH);
     rectangle( (screenSizeX-wndSizeX)/2, (screenSizeY-wndSizeY)/2,
              (screenSizeX+wndSizeX)/2, (screenSizeY+wndSizeY)/2);
     getch();
     closegraph();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru