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

График функции и ее цвет

01.12.2014, 20:23. Показов 1733. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В меню должен быть пункт цвет, как менять цвета я понял(ниже), но я не до конца понял как мне привязать конкретный цвет к кнопке.Например: ВЫБРАТЬ ЦВЕТ - 1)Зеленый 2)Синий.
Я бы это сделал вот так: какую-то проверку: да?По циклу выбирается зеленый цвет.Нет?Выбирается синий цвет.
Выбираем цвет:
C++
1
2
3
4
5
case WM_CREATE:
            hPen1 = CreatePen(PS_SOLID, 2, RGB(0, 100, 0));
            hPen2 = CreatePen(PS_SOLID, 1, RGB(33, 23, 100));
            hPen3 = CreatePen(PS_SOLID, 1, RGB(200, 0, 100));
            return TRUE;
Рисуем сетку и функцию:

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
case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        GetClientRect(hWnd, &rect);
        SetMapMode(hdc, MM_ANISOTROPIC);
        SetWindowExtEx(hdc, 628, -400, NULL);
        SetViewportExtEx(hdc, rect.right, rect.bottom, NULL);
        SetViewportOrgEx(hdc, rect.right / 2, rect.bottom / 2, NULL);
 
        SelectObject(hdc, hPen3);
 
        for (float i = -314; i < 314; i += 78.5)
        {
            MoveToEx(hdc, i, 200, NULL);
            LineTo(hdc, i, -200);
        }
        for (float i = -200; i <= 200; i += 50)
        {
            MoveToEx(hdc, -314, i, NULL);
            LineTo(hdc, 314, i);
        }
 
        SelectObject(hdc, hPen1);
 
        MoveToEx(hdc, -314, 0, NULL);
        LineTo(hdc, 314, 0);
        MoveToEx(hdc, 0, 200, NULL);
        LineTo(hdc, 0, -200);
        MoveToEx(hdc, 314, 0, NULL);
        LineTo(hdc, 294, 10);
        MoveToEx(hdc, 314, 0, NULL);
        LineTo(hdc, 294, -10);
        MoveToEx(hdc, 0, 200, NULL);
        LineTo(hdc, 10, 180);
        MoveToEx(hdc, 0, 200, NULL);
        LineTo(hdc, -10, 180);
 
        SelectObject(hdc, hPen2);
        x_scr = -314;
        MoveToEx(hdc, x_scr, 0, NULL);
 
        for (x == -PI; x < PI; x += 0.01, x_scr++) // горизонтальные линии
        {
            y = sin(x);
            y_scr = y * 200;
            LineTo(hdc, x_scr, y_scr);
        }
 
        /*EndPaint(hWnd, &ps);*/
        break;
P.S. где я сделал ошибку, что с графиком?
Миниатюры
График функции и ее цвет  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.12.2014, 20:23
Ответы с готовыми решениями:

Найти производные функции и на одном графике построить график данной функции, график первой и второй производной.
найти производные первого и второго порядка функции и на одном графике построить график данной функции , график первой и второй...

Используя график функции построить график смещённой функции
используя график функции y=log2x построить график функции y=log2(x+2) Полностью решение нужно)))

Построить график функции y=x^2. График строится из отрезков и алгоритма Брезенхема
Построить график функции y=x^2. График строится с помощью отрезков. Для построения отрезков использовать алгоритм Брезенхема.

12
567 / 198 / 70
Регистрация: 25.05.2012
Сообщений: 816
02.12.2014, 12:35
Цитата Сообщение от Merkava Посмотреть сообщение
но я не до конца понял как мне привязать конкретный цвет к кнопке.Например: ВЫБРАТЬ ЦВЕТ - 1)Зеленый 2)Синий.
Пересоздавать кисть каждый раз при выборе цвета, либо выбирать кисть из числа заранее созданных - SelectObject()

Цитата Сообщение от Merkava Посмотреть сообщение
P.S. где я сделал ошибку, что с графиком?
Что конкретно не так с графиком? Какой ожидаемый результат?

Добавлено через 4 часа 47 минут
Цитата Сообщение от Merkava Посмотреть сообщение
x == -PI
Нужно исправить == на =, если вы хотите, чтобы x изначально был равен -PI. А я подозреваю, что именно этого вы и хотите
0
0 / 0 / 0
Регистрация: 31.12.2013
Сообщений: 75
02.12.2014, 20:15  [ТС]
dmitry94, спасибо большое, что заметили опечатку в коде.Да, нужно менять кисти, сейчас осталось только код для этого написать
0
0 / 0 / 0
Регистрация: 31.12.2013
Сообщений: 75
05.12.2014, 13:02  [ТС]
dmitry94, можете привести пример работы с SelectObject() ?
0
567 / 198 / 70
Регистрация: 25.05.2012
Сообщений: 816
05.12.2014, 13:14
Цитата Сообщение от Merkava Посмотреть сообщение
можете привести пример работы с SelectObject() ?
Ну у вас в вышеприведенной программе используется:
C++
1
2
3
4
5
6
//создать 
hPen1 = CreatePen(PS_SOLID, 2, RGB(0, 100, 0));
hPen2 = CreatePen(PS_SOLID, 1, RGB(33, 23, 100));
hPen3 = CreatePen(PS_SOLID, 1, RGB(200, 0, 100));
//выбрать pen3
SelectObject(hdc, hPen3);
Что непонятно-то?
0
0 / 0 / 0
Регистрация: 31.12.2013
Сообщений: 75
05.12.2014, 15:36  [ТС]
dmitry94, не понятно как мне это к кнопкам меню привязать?
0
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
05.12.2014, 15:47
http://msdn.microsoft.com/ru-r... _to_a_Menu
0
0 / 0 / 0
Регистрация: 31.12.2013
Сообщений: 75
05.12.2014, 17:09  [ТС]
demmax2004, это ничего не объясняет.Я должен в меню выбрать какой-либо пункт.А программа должна выбрать какой-то pen.Как это сделать?
0
567 / 198 / 70
Регистрация: 25.05.2012
Сообщений: 816
05.12.2014, 17:23
Цитата Сообщение от Merkava Посмотреть сообщение
не понятно как мне это к кнопкам меню привязать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
..
case WM_COMMAND:
            switch(wParam)
            {
                case IDM_PEN1:
                                SelectObject(hdc, pen1);
                                break;
 
                case IDM_PEN2:
                                SelectObject(hdc, pen2);
                                break;
 
                case IDM_PEN3:
                                SelectObject(hdc, pen2);
                                break;
                        }
..
Добавлено через 8 минут
Чтобы сгенерировалось WM_PAINT можно там же сделать InvalidateRect(hWnd, NULL, FALSE ); после SelectObject.
0
0 / 0 / 0
Регистрация: 31.12.2013
Сообщений: 75
05.12.2014, 20:00  [ТС]
dmitry94, я запутался.У меня есть ID клавиши, например, ID_COLORS_3 .Я хочу чтобы при нажатии на эту клавишу выбирался определенный pen, подскажите, пожалуйста, как это реализовать?
0
567 / 198 / 70
Регистрация: 25.05.2012
Сообщений: 816
05.12.2014, 20:48
Цитата Сообщение от Merkava Посмотреть сообщение
например, ID_COLORS_3 .Я хочу чтобы при нажатии на эту клавишу выбирался определенный pen, подскажите, пожалуйста, как это реализовать?
В обработчике нажатия кнопки должен быть следующий код:
C++
1
2
SelectObject(hdc, pen1); // выбираем
InvalidateRect(hWnd, NULL, FALSE ); // инициируем перерисовку графика
0
0 / 0 / 0
Регистрация: 31.12.2013
Сообщений: 75
05.12.2014, 22:36  [ТС]
dmitry94, как привязать кнопку с ид ID_COLORS_3 чтобы менялся цвет я так и не понял.
0
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
06.12.2014, 07:00
Точно так же как и в посту №9
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.12.2014, 07:00
Помогаю со студенческими работами здесь

Составить график функции. Дана функция нужно построить график по полученным точкам
Помогите составить график функции. Дана функция нужно построить график по полученным точкам a=1.237845 b=-0.1244321*power(10,3) begin...

Нужно построить график функции y = x2 на интервале [-3,3] и Построить график функции (эллипс) x^2/16 + y^2/9 = 1
Нужно построить график функции y = x2 на интервале и Построить график функции (эллипс) x^2/16 + y^2/9 = 1. На C++

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

Построить график функции и график её производной
Построить график функции (a*x^4)+(b*x^3)/(x^2+c) + График производной

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru