Форум программистов, компьютерный форум CyberForum.ru

Графика: Олимпийская эмблема - C++

Восстановить пароль Регистрация
 
Веди
 Аватар для Веди
-11 / 11 / 1
Регистрация: 04.07.2012
Сообщений: 225
05.07.2012, 21:22     Графика: Олимпийская эмблема #1
осваиваю азы графики. необходимо изобразить олимпийскую эмблему из пяти колец используя функции OWL.
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
//olymp.cpp - Олимпийская эмблема
#include <owl/applicat.h>
#include <owl/framewin.h>
#include <owl/dc.h>
 
#define  COL 5     // Цвета
#define  AWX 310 // Длина окна
#define  AHY 160  // Высота окна
 
//______Класс Главного Окна_______
class TOlympWindow: public TWindow {
protected:
  TColor  c[COL];
public:
  TOlympWindow(TWindow* parent);
 ~TOlympWindow();
  void SetupWindow();
  void Paint(TDC &dc,bool,TRect&);
};
 
//___Конструктор___
TOlympWindow::TOlympWindow(TWindow* parent): TWindow(parent) {
  Attr.W=AWX;
  Attr.H=AHY;
}
 
//___Деструктор___
TOlympWindow::~TOlympWindow() {
}
 
void TOlympWindow::SetupWindow() {
  TWindow::SetupWindow();
  c[1]=TColor(0,0,255);    // Синий
  c[2]=TColor(0,0,0);       // Чёрный
  c[3]=TColor(255,0,0);    // Красный
  c[4]=TColor(255,255,0); // Жёлтый
  c[5]=TColor(0,255,0);    // Зелёный
}
 
void TOlympWindow::Paint(TDC &dc,bool,TRect&) {
  TPen* pen=new TPen(c[1],5);
  dc.SelectObject(*pen);
  dc.Ellipse(10,10,100,100);
  dc.Ellipse(110,10,200,100);
  dc.Ellipse(210,10,300,100);
  dc.Ellipse(60,60,150,150);
  dc.Ellipse(160,60,250,150);
  delete pen;
}
 
//_________Класс Приложения_________
class TOlympApp: public TApplication {
public:
  void InitMainWindow() {
    TFrameWindow *fw=new TFrameWindow(0,"Олимпийская эмблема",
                     new TOlympWindow(0),true);
    fw->Attr.Style &=WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX;
    SetMainWindow(fw);
  }
};
 
//_______OWL Функция_______
int OwlMain(int,char *[]) {
  return TOlympApp().Run();
}
всё работает, только два нижних кольца перекрывают верхние, как сделать фон прозрачным, и использовать все пять цветов? ну и конечно же я не претендую на рациональность кода, возможно я сделал всё совсем не так..

Добавлено через 8 часов 56 минут
---ап---

Добавлено через 11 часов 36 минут
---ап---
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2012, 21:22     Графика: Олимпийская эмблема
Посмотрите здесь:

C++ Графика
C++ ГРАФИКА
Графика в С++ C++
C++ Графика
C++ Графика[c++]
C++ [C++] Графика
C++ графика в С++
Графика на С++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 21:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru