Форум программистов, компьютерный форум, киберфорум
Наши страницы

В домике необходимо заменить кирпичики на треугольники - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать процедуру кодирования сообщения длиной k кодом Рида-Маллера порядка r http://www.cyberforum.ru/cpp-beginners/thread1137113.html
Написать процедуру кодирования сообщения длиной k кодом Рида-Маллера порядка r. Может найдется кто поможет с этим заданием или есть исходеники... Заранее спасибо. Вот здесь есть описание и теория
C++ Блок-схема к программе Прошу помощи по написанию блок схемы к программе. Не могу понять, как должна выглядеть блок схема для функции . Задача : Написать функцию, которая определяет, является ли заданное натуральное число... http://www.cyberforum.ru/cpp-beginners/thread1137091.html
Программа для создания текстового файла с данными C++
Составить программу, которая создает текстовый файл, содержащий имена, расширения и даты последнего изменения всех файлов текущего подкаталога. Помогите пожалуйста
If и switch можно ли объединить? C++
Недавно начал изучать с++, так что не судите строга если код "Говно код" и я дурак))) #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <iostream> void main() {...
C++ Почему при компилировании программы со вторым экземпляром класса изменяются значения первого? http://www.cyberforum.ru/cpp-beginners/thread1137076.html
Здравствуйте. Вопрос: почему при компилировании программы со вторым экземпляром класса изменяются значения первого? namespace SALES { const int QUARTERS = 4; class Sales { ...
C++ Замена слова в строке Задание: ввести с клавиатуры строку + слово, которое нужно заменить + слово, на которое нужно заменить. Вывести на экран новый вариант строки с измененным словом. Объясните, пожалуйста, как это... подробнее

Показать сообщение отдельно
gas310
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 1

В домике необходимо заменить кирпичики на треугольники - C++

02.04.2014, 17:09. Просмотров 162. Ответов 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
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
122
123
124
125
126
127
128
129
130
131
132
#include <stdlib.h>
#include <GL\glut.h> 
 
 
GLint Width = 512, 
      Height = 512;
int FillFlag = 1;
long k = 0;
 
float Random(int m)
{
    return (float)rand()*m/RAND_MAX;
}
 
void DrawRect(float x1, float y1, float x2, float y2, int FillFlag)
{
    glBegin(FillFlag? GL_QUADS:GL_LINE_LOOP);
    glVertex2f(x1, y1);
    glVertex2f(x2, y1);
    glVertex2f(x2, y2);
    glVertex2f(x1, y2);
    glEnd();
}
 
void Resize(GLint w, GLint h)
{
    Width = w;
    Height = h;
    glViewport(0, 0, w, h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(-w/2, w/2, -h/2, h/2);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}
void Display(void) {
 
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(0.0, 1.0, 0.0);
    //Рисование
    glLineWidth(3.0f);
    glBegin(GL_TRIANGLES);
        glVertex2f(-Width/2+5, Height/2-105);
        glVertex2f(0, Height/2-5);
        glVertex2f(Width/2-5, Height/2-105);
    glEnd();
    glColor3f(1.0, 0.0, 0.0);
    glBegin(GL_LINE_LOOP);
        glVertex2f(-Width/2+10, Height/2-110);
        glVertex2f(Width/2-10, Height/2-110);
        glVertex2f(Width/2-10, -Height/2+5);
        glVertex2f(-Width/2+10, -Height/2+5);
    glEnd();
 
    float r, g, b;
    float x1, y1, x2, y2, dx, dy;
    float xn, yn;
    int f = 0;
    dx = 52; dy = 30;
    x1 = -Width/2+10;
    y1 = Height/2-110;
    xn = (Width - 20)/dx;
    yn = (Height - 110)/dy;
 
    for (int j = 1; j <=yn ; j++)
    {
        if(f){ xn = xn - 1; }
        for (int i = 1; i <=xn; i++)
        {
            r = Random(1);
            g = Random(1);
            b = Random(1);
            glColor3f(r, g, b);
            x2 = x1 + dx;
            y2 = y1 - dy;
            DrawRect(x1, y1, x2, y2, FillFlag);
            x1 = x2;
            x2 = x1 + dx;
        }
 
        y1 = y2;
        y2 = y1 - dy;
        x1 = -Width / 2 + 10 + (dx / 2) * (j % 2);
        f = !(f);
        if (f) { xn = xn + 1; };
    }
 
    glFinish();
    glutSwapBuffers();
}
 
void Mouse (int button, int state, int x, int y)
{
    if (state == GLUT_DOWN)
    {
        switch (button)
        {
        case GLUT_LEFT_BUTTON:
            //Какая-то логика
            k = Random(RAND_MAX);
            break;
        case GLUT_RIGHT_BUTTON:
            FillFlag = !FillFlag;
            break;
        }
        glutPostRedisplay();
    }
}
 
void Keyboard(unsigned char key, int x, int y)
{
    const char ESCAPE = '\033';
    if (key == ESCAPE) exit(0);
}
 
int main (int argc, char **argv) {
    //Инициализация
    glutInit(&argc, argv);
 
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(Width, Height);
    glutInitDisplayMode(GLUT_DEPTH |GLUT_DOUBLE | GLUT_RGBA);
    glutCreateWindow(argv[0]);
    //регистрация обратных вызовов - начало обработки событий
    glutDisplayFunc(Display);
    glutReshapeFunc(Resize);
    glutMouseFunc(Mouse);
    glutKeyboardFunc(Keyboard);
    //Основной цикл GLUT 
    glutMainLoop();
    return 1;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.