Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 13.12.2015
Сообщений: 1

Построение графика функции

13.12.2015, 15:18. Показов 1904. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть код для построения графика функции cos(x), помогите пожалуйста изменить его под функцию
U(x;t)=1/2[-sin(x-at)-sin(x+at)] при Pi<=x<=2Pi. Заранее благодарна

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
#include <windows.h>
#include <stdio.h>
#include <math.h>
 
#define RED RGB(255,0,0)
#define GRN RGB(0,255,0)
#define BLU RGB(0,0,255)
 
#define BLK RGB(0,0,0)
#define WHT RGB(255,255,255)
 
HPEN  getPen(int iPEN_STYLE, int iPEN_SIZE, int iCOLORREF);
BOOL  SetPoint(HDC hDC, HPEN hPen, COORD PNT);
BOOL  PlotLine(HDC hDC, HPEN hPen, COORD BGN, COORD END);
//Функция график которой строим
double f(double x){return cos(x);}
double * mf(double a, double b, double n)
{
    double x = a;
    double h = (b - a)/n;
    double vec[2];
    vec[0] = f(a);
    vec[1] = f(a);
    while(x < b)
    {
        if(vec[1] < f(x))
            vec[1] = f(x);
        if(f(x) < vec[0])
            vec[0] = f(x);
        x += h;
    }
    return &vec[0];
}
 
int main()
{
    long n;
    double a = 0, b = 0,x, dx, *vec;
    double CX, CY;
    
    HWND    hWnd = GetForegroundWindow();
    HPEN    RPEN = getPen(PS_SOLID, 2, RED);
    HPEN    GPEN = getPen(PS_SOLID, 2, GRN);
    HPEN    BPEN = getPen(PS_SOLID, 2, BLU);
    HPEN    WPEN = getPen(PS_SOLID, 3, WHT);
    RECT    pRECT= {0};
    COORD   BGN  = {0};
    COORD   END  = {0};
    GetClientRect(hWnd,&pRECT);
    
    HDC hDC = GetWindowDC(hWnd);
 
    printf("\tPloting f(x) = ln(x)\r\n");
    printf("Enter diapasone [a;b]\r\n");
    printf("a = ");scanf("%lf",&a);
    printf("b = ");scanf("%lf",&b);
    printf("Enter number of points\r\n");
    printf("n = ");scanf("%u",&n);
    vec = mf(a, b, n);//Нужно знать макс и мин для масштабирования
    if(hDC)
    {
        CX = (b - a)/(pRECT.right - pRECT.left);
        CY = (vec[1] - vec[0])/(pRECT.bottom - pRECT.top);
        
        x = a;dx = (b - a)/n;
        BGN.X = x   /CX;
        BGN.Y = f(x)/CY + (pRECT.bottom - pRECT.top)/2;
        SetBkMode(hDC,TRANSPARENT);
        SetPoint (hDC, WPEN, BGN);
        while(x < b)
        {
            END.X = x   /CX;
            END.Y = f(x)/CY + (pRECT.bottom - pRECT.top)/2;
            PlotLine(hDC, RPEN, BGN, END);
            SetPoint (hDC,WPEN, END);
            BGN = END;
            x += dx;
        }
    }
    system("pause");
    return 0;
}
 
HPEN getPen(int iPEN_STYLE, int iPEN_SIZE, int iCOLORREF)
{
        return CreatePen(iPEN_STYLE, iPEN_SIZE, iCOLORREF);
}
 
BOOL SetPoint(HDC hDC, HPEN hPen, COORD PNT)
{
        EXTLOGPEN pINFO;
        GetObject(hPen,sizeof(EXTLOGPEN),&pINFO);
        SelectObject(hDC,hPen);
        return Ellipse
        (
                hDC,
                PNT.X - pINFO.elpWidth,
                PNT.Y + pINFO.elpWidth, 
                PNT.X + pINFO.elpWidth,
                PNT.Y - pINFO.elpWidth
        );
}
 
BOOL PlotLine(HDC hDC, HPEN hPen, COORD BGN, COORD END)
{
        SelectObject(hDC,hPen);
        MoveToEx(hDC,BGN.X,BGN.Y,NULL);
        return LineTo(  hDC,END.X,END.Y);
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.12.2015, 15:18
Ответы с готовыми решениями:

Построение графика функции
Доброй Ночи! Нужно построить график функции на основе winAPI. Но проблема в том, что при задании функции график строится неправильно. ...

Построение графика в оконной функции XY-График
Оконная функция всплывающего окна Открываем фаил с данными &quot;Координатами&quot; - Их он выводит на экран в главное окно. По нажатию...

Построение графика графика квадратичной функции
Как построить график квадратичной функции? Построил только простую параболу, как ее сдвигать? int ixPrev = -1, iyPrev =...

1
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
13.12.2015, 16:33
Квадратные скобки это целая часть или простые? a - константа? t откуда берётся?
C++
1
2
3
4
double f(double x, double t)
{
    return 0.5 * (-sin(x - a * t) - sin(x + a * t));
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2015, 16:33
Помогаю со студенческими работами здесь

Построение графика графика квадратичной функции
Как построить график квадратичной функции? Построил только простую параболу, как ее сдвигать? int ixPrev = -1, iyPrev =...

Вычисление функции на заданном промежутке, и построение графика этой функции
Написать блок-схему и программу вычисления функции на за- данном промежутке с шагом 0.2 и построить график этой функции. Если x&gt;1 ...

Графика Си. Построение графика функции
Построить график функции y=2x^3 - 4x и y=(sin x)^3+(cos x)^2 +1 на промежутке с шагом разбиения h=0,02

Построение графика функции имея таблицу значений функции
Мой ход решения, иначе не умею, решение через транспонируемые матрицы с построением графика Не могу выразить С (коэфициенты а1 а2 а3...

Построение графика функции с помощью функции fplot
В одном графическом окне создать 2 подобласти, в которых c помощью функции fplot построить графики функций y=sh x, y=ch x , задав...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru