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

Наклонить эллипс

27.11.2015, 20:17. Показов 802. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, нужно наклонить эллипс, сколько не ищу, у меня ничего не получается сделать.
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
#include <Windows.h> 
#include <tchar.h> 
#include <math.h> 
 
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); 
TCHAR WinName[] = _T("MainFrame"); 
 
int APIENTRY WinMain(HINSTANCE This, HINSTANCE Prev, LPSTR cmd, int mode) { 
HWND hWnd; // Дескриптор главного окна программы 
MSG msg; // Структура для хранения сообщений 
WNDCLASS wc; // Класс окна 
 
wc.hInstance = This; 
wc.lpszClassName = WinName; 
wc.lpfnWndProc = WndProc; 
wc.style = CS_HREDRAW | CS_VREDRAW; 
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); 
wc.hCursor = LoadCursor(NULL, IDC_ARROW); 
wc.lpszMenuName = NULL; 
wc.cbClsExtra = 0; 
wc.cbWndExtra = 0; 
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 5); 
if (!RegisterClass(&wc)) 
return 0; 
hWnd = CreateWindow(WinName, _T("Каркас Windows-приложения"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, NULL, This, NULL); 
ShowWindow(hWnd, mode); 
while (GetMessage(&msg, NULL, 0, 0)) { 
TranslateMessage(&msg); 
DispatchMessage(&msg); 
} 
return 0; 
} 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 
{//обработчик сообщений 
PAINTSTRUCT ps; 
HDC hdc; 
POINT pt[5] = { { -300,-300 },{ -450, 300 },{ 450, 300 },{ 300, -300 },{ -300, -300 } };
POINT el[2] = { { 300, 300 },{ 75, 75 } }; 
const int WIDTH = 500; 
const int HEIGHT = 300; 
int n = 2; 
const float M_PI = 3.14; 
static int sx, sy, i, k; 
static HBRUSH hBrush; 
static HBRUSH hBrush1; 
float alpha = M_PI / 7; 
HRGN ellipse; 
switch (message) 
{ 
case WM_CREATE: 
break; 
case WM_SIZE: 
sx = LOWORD(lParam);//Ширина 
sy = HIWORD(lParam);//Высота 
break; 
case WM_PAINT: 
hBrush = CreateSolidBrush(RGB(255, 0, 0)); 
hBrush1 = CreateSolidBrush(RGB(0, 0, 255)); 
hdc = BeginPaint(hWnd, &ps); 
//Установка режима SetMapMode(hdc,MM_ANISOTROPIC); 
//Установка логических размеров вывода , ось Y направлена вверх SetWindowExtEx(hdc,WIDTH,-HEIGHT,NULL); 
//Усновка физических размеров 
SetViewportExtEx(hdc, sx, sy, NULL); 
//Установка начала координат 
SetViewportOrgEx(hdc, sx / 2, sy / 2, NULL); 
SelectObject(hdc, hBrush); 
for(int i = 0; i < 2; i++) { 
el[i].x = (el[i].x*cos(alpha) - el[i].y*sin(alpha)); 
el[i].y = (el[i].x*sin(alpha) + el[i].y*cos(alpha)); 
} 
 
SelectObject(hdc, hBrush); 
ellipse = CreateEllipticRgn(el[0].x, el[0].y, el[1].x, el[1].y); 
FillRgn(hdc, ellipse, hBrush1); 
EndPaint(hWnd, &ps); 
DeleteObject(ellipse); 
break; 
case WM_DESTROY:PostQuitMessage(0); 
break; 
default:return DefWindowProc(hWnd, message, wParam, lParam); 
} 
return 0; 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.11.2015, 20:17
Ответы с готовыми решениями:

Текст и эллипс
Здравствуйте! когда я вывожу на экран текст с помощью DirectDraw и например эллипс(например красного цвета), проходит несколько секунд и...

Нарисовать эллипс в низу окна
У меня такое задание было нарисовать эллипс в низу окна. Функция которая рисует эллипс -это Ellipse(); , но у меня возник вопрос, как...

Не могу нарисовать эллипс нужной кистью
Добрый день. Не могу нарисовать эллипс нужной кистью. Следующие действия приводят к появлению белого круга, а не красного, как...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.11.2015, 20:17
Помогаю со студенческими работами здесь

При рисовании в WM_PAINT одновременно текст и эллипс, пропадает то, что отрисовывается позднее, как это исправить?
Программа такая: есть два окна, главное и дочернее. В главное один поток, в дочернем- два потока(текст и эллипс двигаются) нужно...

Как наклонить изображение?
Как наклонить изображение, и можно ли это сделать? Имеется в виду вот такое:

Можно ли наклонить фотографии?
Можно ли наклонить изображения? Ну как бы придать такой эффект когда фотографии делаешь с наклоненным в сторону фотоаппаратом. Не...

Как наклонить синусоиду?
Как в матлабе(именно матлаб, не симулинк) построить синусоиду, которая будет наклонена в какую-либо из сторон(только в одну)? Если можно,...

Как наклонить объект
Проблема вот в чем: spriteBatch.Draw(smileT, smileR, Color.White, 0.2f, Vector2.Zero); В чем ошибка? Студия пишет мол...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
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
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru