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

Почему квадрат и прямоугольник не закрашиваются?

20.05.2020, 19:20. Показов 563. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <locale.h>
#include <Windows.h>
 
using namespace std;
 
class point
{
protected:
    int x1, y1;
public:
    point(void)
    {   }
    ~point(void)
    {    }
    void SetPoint(int a, int b)
    {
        x1 = a;
        y1 = b;
    }
};
class segment :public point
{
protected:
    int x2, y2;
public:
 
    segment(void)
    {}
    ~segment(void)
    {}
 
};
 
class square : public segment
{
protected:
    int x1, y1;
public:
    void SetSquare(int x, int y)
    {
        x1 = x;
        y1 = y;
    }
 
    void input()
    {
        x1 = 50;
        y1 = 50;
    }
    int get_A()
    {
        return x1;
    }
    int get_B()
    {
        return y1;
    }
    int get_A2()
    {
        return x1;
    }
    int get_B2()
    {
        return y1+y1;
    }
    int get_A3()
    {
        return x1 + x1;
    }
    int get_B3()
    {
        return y1;
    }
    int get_A4()
    {
        return x1 + x1;
    }
    int get_B4()
    {
        return y1 + y1;
    }
};
class parallelogram : public segment
{
protected:
    int x3, y3;
public:
    void SetParallelogram(int x, int y)
    {
        x3 = x;
        y3 = y;
    }
 
    void input()
    {
        x1 = 50;
        y1 = 150;
        x3 = 150;
        y3 = 50;
    }
    int get_A()
    {
        return x1;
    }
    int get_B()
    {
        return y1;
    }
    int get_A2()
    {
        return x1;
    }
    int get_B2()
    {
        return y1 + y3;
    }
    int get_A3()
    {
        return x1 + x3;
    }
    int get_B3()
    {
        return y1;
    }
    int get_A4()
    {
        return x1 + x3;
    }
    int get_B4()
    {
        return y1 + y3;
    }
};
void main()
{
    setlocale(LC_ALL, "RUS");
    square line;
    line.input();
    string answer;
    parallelogram form;
    form.input();
    system("cls");
    POINT op;
    HWND hWnd = GetConsoleWindow();
    HDC hDC = GetDC(GetConsoleWindow());
    HPEN Pen1 = CreatePen(PS_SOLID, 4, RGB(240, 0, 0));
    HPEN Pen2 = CreatePen(PS_SOLID, 50, RGB(240, 0, 0));
    SelectObject(hDC, Pen1);
    MoveToEx(hDC, line.get_A(), line.get_B(), &op);
    LineTo(hDC, line.get_A2(), line.get_B2());
 
    MoveToEx(hDC, line.get_A2(), line.get_B2(), &op);
    LineTo(hDC, line.get_A4(), line.get_B4());
 
    MoveToEx(hDC, line.get_A(), line.get_B(), &op);
    LineTo(hDC, line.get_A3(), line.get_B3());
 
    MoveToEx(hDC, line.get_A3(), line.get_B3(), &op);
    LineTo(hDC, line.get_A4(), line.get_B4());
 
 
    SelectObject(hDC, Pen1);
    MoveToEx(hDC, form.get_A(), form.get_B(), &op);
    LineTo(hDC, form.get_A2(), form.get_B2());
 
    MoveToEx(hDC, form.get_A2(), form.get_B2(), &op);
    LineTo(hDC, form.get_A4(), form.get_B4());
 
    MoveToEx(hDC, form.get_A(), form.get_B(), &op);
    LineTo(hDC, form.get_A3(), form.get_B3());
 
    MoveToEx(hDC, form.get_A3(), form.get_B3(), &op);
    LineTo(hDC, form.get_A4(), form.get_B4());
    cout << "Удалить фигуры?" << endl;
    cin >> answer;
    if (answer == "yes"|| answer =="да")
    {
        DeleteObject(hDC);
    }
    cout << "Вы хотите закрасить фигуры?" << endl;
    cin >> answer;
    if (answer == "yes" || answer == "да")
    {
        SelectObject(hDC, Pen2);
        MoveToEx(hDC, line.get_A(), line.get_B(), &op);
        LineTo(hDC, line.get_A2(), line.get_B2());
        MoveToEx(hDC, form.get_A(), form.get_B(), &op);
        LineTo(hDC, form.get_A2(), form.get_B2());
    }
    cin.get();
    system("cls");
    system("pause");
}
создаются
но после ничего не происходит
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.05.2020, 19:20
Ответы с готовыми решениями:

Рисование - почему не закрашиваются квадраты?
Подскажите пожалуйста почему не закрашиваются квадраты!? Заранее спасибо ...

Вписать пятно в квадрат(прямоугольник)
Ребята у меня есть изображения. С него я делаю массив цветов(Р Г или Б) (картинка черно белая без разници какой канал брать) сами пятна...

Нарисовать треугольник, квадрат, круг, прямоугольник
Помогите нарисовать треугольник, квадрат, круг и прямоугольник в Pascal ABC Добавлено через 1 час 23 минуты У меня пока вот что...

7
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12933 / 6801 / 1820
Регистрация: 18.10.2014
Сообщений: 17,213
20.05.2020, 19:30
Цитата Сообщение от Fann Посмотреть сообщение
создаются
Ну ну... Код невозможно скомпилировать из-за void main(). Код невозможно скомпилировать из-за отсутствующего #include <string>

Ничего нигде не создается. Код невозможно скомпилировать.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
20.05.2020, 19:32
квадрат наследуется от отрезка, полное непонимание наследования
куча индусского кода, написанного копипастом.
рисование в консоли
пожалуйста, прекратите это
0
0 / 0 / 0
Регистрация: 23.03.2020
Сообщений: 61
20.05.2020, 19:32  [ТС]
TheCalligrapher, даже вставив эту библиотеку и изменив void на int, ничего не работает
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12933 / 6801 / 1820
Регистрация: 18.10.2014
Сообщений: 17,213
20.05.2020, 19:33
Цитата Сообщение от Fann Посмотреть сообщение
DeleteObject(hDC);
Это еще что такое? hDC - системный контекст, который вы не создавали. Кто вам разрешил его удалять?

И почему вы называете это "Удалить фигуры?" Что такое "Удалить фигуры?" и как это связано с вашей попыткой удаления контекста?
0
0 / 0 / 0
Регистрация: 23.03.2020
Сообщений: 61
20.05.2020, 19:34  [ТС]
Kuzia domovenok, извините что задание такое....
препод сказал что есть класс точка, от него наследуется отрезок, а от отрезка квадрат
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12933 / 6801 / 1820
Регистрация: 18.10.2014
Сообщений: 17,213
20.05.2020, 19:36
Цитата Сообщение от Fann Посмотреть сообщение
ничего не работает
Тут не разрешаются бессмысленные фразы вроде "ничего не работает". С этим вам прямая дорога на пикабу. Где подробное описание того, что должно происходить? Я по-моему уже предписывал вам давать подробные описания ожидаемого поведения. Почему я не вижу здесь этого описания?
0
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
20.05.2020, 19:45

Не по теме:

Fann, а от квадрата наследуется препод. Иначе и быть не может.


Отрезок состоит из двух точек, а не точка и что-то еще. Квадрат как отрезок + еще 2 координаты = наследование ради наследования.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.05.2020, 19:45
Помогаю со студенческими работами здесь

Определить, можно ли прямоугольник поместить в квадрат
Дано три числа - длина стороны квадрата и длины сторон прямоугольника. Определить, можно ли прямоугольник поместить в квадрат. Входные...

Определить, можно ли прямоугольник поместить в квадрат
Дано три числа - длина стороны квадрата и длины сторон прямоугольника. Определить, можно ли прямоугольник поместить в квадрат. Входные...

Множественное наследование: прямоугольник, квадрат, ромб, параллелограмм
Помогите, пожалуйста, разработать иерархию. В дальнейшем надо реализовать несколько методов, среди которых изменение размера и...

Реализация классов прямоугольник, окружность и квадрат + полиморфизм
Создать базовый класс фигура, на основе базового класса создать производные классы: прямоугольник, окружность и квадрат. Метод прорисовки...

Определить тип параллелограмма (ромб, прямоугольник или квадрат)
Задача 1. Задан параллелограмм со сторонами a, b и углом α между ними. Определить тип параллелограмма (ромб, прямоугольник или квадрат),...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru