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

Вывод текста по контуру окружности

18.12.2018, 20:30. Показов 1488. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер всем! Не могу сделать вывод текста по контуру окружности. Фигуру нарисовал. Помогите вывести текст. Мб есть примеры? или какие-то идеи?
Миниатюры
Вывод текста по контуру окружности  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.12.2018, 20:30
Ответы с готовыми решениями:

Сформировать круг, движущийся по контуру воображаемой окружности заданного радиуса
Задача 1. В воображаемом квадрате заданного размера построить совокупность пхп окружностей случайного радиуса, окрашенных в случайные...

Обтекание текста по контуру круга
Добрый день. Подскажите, как можно сделать обтекание и повторение одного и того же слова вокруг круга? На рисунке круг и вокруг него 4...

Вывод текста, запрет растягивания окна, окно ввода текста
Здравствуйте. Заранее извиняюсь за создание очередной темы, но решения в поиске я не нашел. Я научился делать вывод текста с помощью...

1
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,120
19.12.2018, 10:40
Rotating Lines of Text
Чуть изменённый пример из MSDN
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
115
116
117
118
119
120
121
#include <windows.h>
#include <cmath>
#include "strsafe.h"
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    PAINTSTRUCT ps;
    HDC hdc;
 
    switch (message)
    {
 
        case WM_PAINT:
        {
            hdc = BeginPaint(hWnd, &ps);
            RECT rc;
            int angle;
            HGDIOBJ hfnt, hfntPrev;
            TCHAR lpszRotate[22] = TEXT("String to be rotated.");
            HRESULT hr;
            size_t pcch = 22;
 
            // Allocate memory for a LOGFONT structure. 
 
            PLOGFONT plf = (PLOGFONT)LocalAlloc(LPTR, sizeof(LOGFONT));
 
 
            // Specify a font typeface name and weight. 
 
            hr = StringCchCopy(plf->lfFaceName, 6, TEXT("Arial"));
            if (FAILED(hr))
            {
                // TODO: write error handler
            }
 
            plf->lfWeight = FW_NORMAL;
 
            // Retrieve the client-rectangle dimensions. 
 
            GetClientRect(hWnd, &rc);
 
            // Set the background mode to transparent for the 
            // text-output operation. 
 
            SetBkMode(hdc, TRANSPARENT);
 
            hr = StringCchLength(lpszRotate, 22, &pcch);
            if (FAILED(hr))
            {
                // TODO: write error handler
            }
 
            for (size_t i = 0; i < pcch; i++)
            {
                int angle = 900 - 100 * i; // начинаем с 90 градусов и уменьшаем (сверху идём направо и вниз)
 
                plf->lfEscapement = angle - 900; // горизонталь поворнута на 90 градусов относительно вертикали
 
                hfnt = CreateFontIndirect(plf);
                hfntPrev = SelectObject(hdc, hfnt);
 
                int r = 100; // радиус
                int x = rc.right / 2 + r * cos(3.14 * angle / 1800);
                int y = rc.bottom / 2 - r * sin(3.14 * angle / 1800);
 
                TextOut(hdc, x, y, lpszRotate + i, 1);
 
                SelectObject(hdc, hfntPrev);
                DeleteObject(hfnt);
            }
 
            // Reset the background mode to its default. 
 
            SetBkMode(hdc, OPAQUE);
 
            // Free the memory allocated for the LOGFONT structure. 
 
            LocalFree((LOCALHANDLE)plf);
            EndPaint(hWnd, &ps);
            break;
        }
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASS wc;
    memset(&wc, 0, sizeof(wc));
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor(nullptr, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wc.lpszClassName = TEXT("MyWindowClass");
    RegisterClass(&wc);
 
    HWND hWnd = CreateWindow(wc.lpszClassName, TEXT("MyWindow"), WS_OVERLAPPEDWINDOW, 100, 100, 600, 150, 0, 0, hInstance, 0);
    if (!hWnd)
        return FALSE;
 
    ShowWindow(hWnd, SW_SHOW);
    UpdateWindow(hWnd);
 
    MSG msg;
    while (GetMessage(&msg, 0, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    return (int)msg.wParam;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2018, 10:40
Помогаю со студенческими работами здесь

Сохранить формат текста полученного из textarea и вывод этого текста
есть вот такой textarea &lt;TEXTAREA cols=&quot;96&quot; wrap=&quot;hard&quot; class=&quot;forms&quot; id=&quot;description&quot; NAME=&quot;description&quot; ...

Как сделать вывод текста, результата и продолжение текста
#include &lt;iostream&gt; using namespace std; int main() { int win; cout&lt;&lt;&quot;Введите цифру\n&quot;; cin &gt;&gt; win; ...

Поиск текста в .txt и вывод этого текста в консоль
Доброе время суток! Задали в универе написать программу (база данных книг) которая сохраняет вводимую информацию в .txt файле. Функцию...

Система меню, вывод окружности на экран
Построить систему меню, которая в зависимости от выбора пользователя выводит на экран: окружность; окружность, заполненную частыми точками;...

Вывод данных об окружности по одному значению
Элементы окружности пронумерованы следующим образом: 1 - Радиус, 2 - диаметр, 3 - длина, 4 - площадь круга. Дан номер одного из этих...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru