Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097

Отображение графиков функций на C++ (WinApi)

06.05.2016, 20:50. Показов 2316. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
хочу сделать программу под visual studio 2013 C++, позволяющую отображать графики функций, заданных таблично (чтение из файла) и простейшими математическими выражениями. Программа должна использовать базовый набор функций Windows API (application programming interfaces).

Отображать графики элементарных функций:
Cos
Sin
Tg
Ctg
1/x


Задать свой график таблично (по точкам) и работать с ним:
редактировать его
сохранить график в файл
загрузить график из файла

Вот выкладываю код по рисованию окружности,прямоугольника,линии. Хочется пример как его под заданный функции переделать.

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
// ConsoleApplication18.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include<Windows.h>
 
void Circle(HWND hW, int xCenter, int yCenter, int radius, COLORREF borderColor, COLORREF fillColor)
{
    HDC hDC = GetDC(hW);
    HPEN hPen = CreatePen(PS_SOLID, 1, borderColor);
    HPEN hOldPen = (HPEN)SelectObject(hDC, hPen);
    HBRUSH hBrush = CreateSolidBrush(fillColor);
    HBRUSH hOldBrush = (HBRUSH)SelectObject(hDC, hBrush);
 
    Ellipse(hDC, xCenter - radius, yCenter - radius, xCenter + radius, yCenter + radius);
 
    SelectObject(hDC, hOldPen);
    DeleteObject(hPen);
    SelectObject(hDC, hOldBrush);
    DeleteObject(hBrush);
    ReleaseDC(hW, hDC);
}
 
 
void Rectangle(HWND hW, int x0, int y0, int x1, int y1, COLORREF color)
{
    HDC hDC = GetDC(hW);
    HBRUSH hBrush = CreateSolidBrush(color); //задаём сплошную кисть, закрашенную цветом RGB
    SelectObject(hDC, hBrush); //делаем кисть активной
    Rectangle(hDC, x0,y0,x1,y1); //закрашенный цветом 255,0,67 прямоугольник
    DeleteObject(hBrush);
    ReleaseDC(hW, hDC);
}
 
void Line(HWND hW, int x0, int y0, int x1, int y1, COLORREF color)
{
    HDC hDC = GetDC(hW);
    HPEN hPen = CreatePen(PS_SOLID, 2, color);
    HPEN hOldPen = (HPEN)SelectObject(hDC, hPen);
    POINT p = { 0, 0 };
    GetCurrentPositionEx(hDC, &p);
    MoveToEx(hDC, x0, y0, &p);
    LineTo(hDC, x1, y1);
    SelectObject(hDC, hOldPen);
    DeleteObject(hPen);
    ReleaseDC(hW, hDC);
}
int _tmain(int argc, _TCHAR* argv[])
{
    //.....И получим желтую линию.
    HWND hW = GetConsoleWindow();
    //Line(hW, 100, 100, 200, 200, RGB(255, 255, 0));
    
    //.....Получаем закрашенный розовый прямоугольник
    //Rectangle(hW, 100, 100, 200, 200, RGB(255, 0, 67));
    //получаем окружность с радиусом 50,с синей обводкой желтого цвета
    Circle(hW, 100, 100, 50, RGB(0, 0, 255), RGB(255, 255, 0));
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.05.2016, 20:50
Ответы с готовыми решениями:

Рисование графиков функций в WinApi
Доброе время суток. Я начинающий программист хочу попросить помощи у вас собратьев. Написал код ,а он выдаёт множество ошибок в которых не...

Возможно ли отображение графиков функций (например, в виде точек) в командной строке?
Добрый день, форумчане! Может кто может дать добрый совет, как начертить ось координат и график функций в командной строке? Например,...

Рисование простейших графиков на WinAPI
Нашел программу для рисования синусоидальной волны. Как ее переделать, чтоб рисовала график функции y = x^2? Или y = x^3. Никак не...

1
267 / 189 / 33
Регистрация: 15.01.2011
Сообщений: 681
08.05.2016, 00:21
я блин на Марс , уже который год хочу, таки не пущают, но это не в тему, а в тему для того что бы реализовать то что ты хочешь то тебе надо понять что та или иная функция делает, как вариант научится пользоваться отладчиком, благо в студии он выше всех похвал, и по шагово пройти пример кода, и пока не поймешь последнюю строку , смысла лезть куда то дальше нет. и так же не помешает видо изменять уже существующий код , для того что бы лучше понять что и как. ну а после уже с полным пониманием происходящего можно творить все что душе угодно, других вариантов нет, ТЕЛЕПАТОВ КАКИЕ ТО сцуки ПЕРЕБИЛИ )))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.05.2016, 00:21
Помогаю со студенческими работами здесь

отображение графиков
Здравствуйте! Программа на маткаде 14 рабочая. Подскажите пожалуйста, с чем может быть связано не отображение графиков. И вообщем, что...

Отображение графиков
Люди добрые, помогите пожалуйста Вообщем, мне нужно чтобы при выборе пункта одного из переключателей и нажатии на кнопку передавалась...

Отображение графиков
При отображении графиков ось Х нумеруется порядковыми номерами значения, а надо нумировать соответствующими датами. В чём косяк? Кусос...

Отображение графиков в вебе
Здравствуйте господа! Есть проект на С#, Windows Forms, изпользующий библиотеку ZedGraph для работы с графиками и диаграммами. Проект...

Отображение графиков в Canvas
Доброго времени суток, я снова вернулся сюда по вопросам адекватного отображения рисунков в своих программах. Теперь, когда проблема с...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru