Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 13

Нарисовать елку и месяц

08.11.2012, 20:28. Показов 3480. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как нарисовать елку и месяц.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.11.2012, 20:28
Ответы с готовыми решениями:

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

Нарисовать елку при помощи рекурсии
помогите пожалуйста нарисовать елочку при помощи рекурсии...

Задачка про елку
Нужно нарисовать елку из символов "_" и "*" , и чтоб в каждой 2й строке была игрушка "0", а ширина елки вычисляется по кол-ву...

3
387 / 214 / 102
Регистрация: 09.04.2012
Сообщений: 635
11.11.2012, 11:54
Как-то так
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
// компиляция (Microsoft Visual C++):
// cl /c paint01.cpp
// link paint01.obj gdi32.lib user32.lib kernel32.lib
 
#include <windows.h>
 
HINSTANCE hInst;
HWND hwndMain;
 
LRESULT APIENTRY WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 POINT pnt;
 LPPOINT lpPoint;
 
 HDC hdc;
 RECT rect;
 switch(message)
 {
  case WM_PAINT:
   rect.left =0;
   rect.top = 0;
   rect.right = 200;
   rect.bottom = 200;
   hdc = GetDC(hwndMain);
   //FillRect(hdc, &rect, (HBRUSH) GetStockObject(BLACK_BRUSH));
   //InvalidateRect(hwndMain, &rect, 1);
 
// x y
   MoveToEx(hdc, 60, 80,lpPoint);
   LineTo(hdc, 60, 320);
   {
   int x1, y1;
   for(y1 = 80; y1<220; y1+=5)
     {
       MoveToEx(hdc, 60, y1 ,lpPoint);
       LineTo(hdc, 40, y1+10);
       MoveToEx(hdc, 60, y1 ,lpPoint);
       LineTo(hdc, 80, y1+10);
     }
   }
  // WINGDIAPI BOOL WINAPI ArcTo(__in HDC hdc, 
  //__in int left, __in int top, __in int right, __in int bottom, 
  //__in int xr1, __in int yr1, __in int xr2, __in int yr2);
  //
  MoveToEx(hdc, 110,25 ,lpPoint);
  ArcTo(hdc, 100,10, 150,110, 150,110, 100,10 );
 
   ReleaseDC(hwndMain, hdc);
   return 0;
 
  case WM_DESTROY:
   PostQuitMessage(0);
   return 0;
  default:
   return DefWindowProc(hwnd,  message, wParam,  lParam);
 }
return DefWindowProc(hwnd,  message, wParam,  lParam);
}
 
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdSHow)
{
MSG msg;
WNDCLASSEX wcx;
 
hInst = hInstance;
 
wcx.cbSize = sizeof(wcx);
wcx.style = CS_HREDRAW | CS_VREDRAW;
wcx.lpfnWndProc = (WNDPROC) WndProc;
wcx.cbClsExtra = 0;
wcx.cbWndExtra = 0;
wcx.hInstance = hInstance;
wcx.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcx.hCursor = LoadCursor(NULL, IDC_ARROW);
wcx.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wcx.lpszMenuName = "MainMenu";
wcx.lpszClassName = "MainWClass";
wcx.hIconSm = NULL;
 
if (!RegisterClassEx(&wcx))
{
MessageBox(NULL, "!RegisterClassEx(&wcx)", "!RegisterClassEx(&wcx)", NULL);
}
 
hwndMain = CreateWindow("MainWClass","Main Window",
WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL,
0,0,400,400,(HWND) NULL, (HMENU) NULL,hInstance, NULL);
if (!hwndMain)
{
MessageBox(NULL, "!hwndMain", "!hwndMain", NULL);
return FALSE;
}
ShowWindow(hwndMain, SW_SHOW);
UpdateWindow(hwndMain);
 
BOOL fGotMessage;
while((fGotMessage = GetMessage(&msg, (HWND) NULL, 0, 0))!=0 &&  fGotMessage!=-1)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
1
Модератор
Эксперт С++
 Аватар для zss
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,257
11.11.2012, 12:05
По сообщению WM_PAINT нужно обязательно вызывать BeginPaint
а не GetDC
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
11.11.2012, 12:12
Цитата Сообщение от kg250493 Посмотреть сообщение
как нарисовать елку и месяц.
Для начала надо определиться с тем, как это должно выглядеть. Готового объекта "ёлка" нет, его придётся составить из примитивов. Какая библиотека будет исполнять твою графику? GDI? OpenGL? Или ещё что? Ознакомься с примитивами выбранной библиотеки, с тем, как они выглядят, а потом из этих примитивов составь изображение, можно на бумаге. Потом тебе нужны параметры примитивов. Например, сплайн Безье определяется координатами 4-х точек: 2 точки - концы самого сплайна, а 2 между ними - отрезков касательных, вторые концы которых - концы самого сплайна, длина каждого отрезка пропорциональна радиусу кривизны в соответствующей точке касания. Определись со значениями параметров. Потом тебе нужен синтаксис подготовительных и завершающих операций и синтаксис отрисовки примитивов и всего рисунка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.11.2012, 12:12
Помогаю со студенческими работами здесь

Построить на экране елку
1. построить на экране Елку

Введите с клавиатуры данные о температуре воздуха за месяц. Определите, сколько раз за месяц была самая низкая температура?
Собственно, проходим циклы, возникли проблемы с этой задачей. Нуждаюсь в вашей помощи.

Вывести "елку" из звездочек
Нужно вывести елочку как на рисунку только с помощью циклов. И объясните как оно делается. Целый день ломаю голову и не могу так...

Нарисовать елку
Нужно построить ёлку. Uses GraphABC; Const a=150; {äëèíà ñòîðîíû òðåóãîëüíèêà} b=100; N=3; var x,y:integer; ...

Нарисовать елку
Привет всем. Очень срочно нужно сделать один рисунок. Тема &quot;Графика&quot;. Нужно нарисовать елку ( два полых трехугольника, внутри каждого...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru