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

Построить на экране рисунок одно подъездного дома, если известны координаты левого верхнего угла дома

07.02.2012, 14:29. Показов 4282. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Построить на экране рисунок одно подъездного дома, если известны координаты левого верхнего угла дома, ширина и высота этажа. (дом должен быть трехэтажный, и на каждом этаже по одному одинаковому окошку)
напишите, пожалуйста, полное решение задачи, с пояснениями.
за ранее спасибо.

Добавлено через 1 минуту
нужно решение в с++
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.02.2012, 14:29
Ответы с готовыми решениями:

Побайтно вывести рисунок в видеопамять, начиная с левого верхнего угла дисплея
Возможно ли, посредством VBA, сделать следующее: Имеется не сжатый рисунок RGB формата и размером 500*500 пикселей. (для примера) ...

Получение координаты левого верхнего угла окна
Ребята, как получить текущее координаты левого верхнего угла окна, я использую следующее... RECT rect; GetWindowRect(*main_window,...

Получить и задать координаты левого верхнего угла формы
1. Я нажимаю Button1 и на экран MessageBox.Show высвечиваются координаты формы. (левый верхний угол.) Как это сделать? 2. Я ввожу в...

15
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
07.02.2012, 15:03
Калерчик, посмотри сюда Как рисовать элементарные геометрические фигуры?
1
1 / 1 / 0
Регистрация: 16.12.2011
Сообщений: 76
07.02.2012, 15:10  [ТС]
а саму программу можете составить?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
07.02.2012, 15:12
Цитата Сообщение от Калерчик Посмотреть сообщение
а саму программу можете составить?
- могу только нарисуй в Paint каким должен быть дом(прорисуй прямоугольниками окна)
Я конечно это видел
Цитата Сообщение от Калерчик Посмотреть сообщение
если известны координаты левого верхнего угла дома, ширина и высота этажа. (дом должен быть трехэтажный, и на каждом этаже по одному одинаковому окошку)
Но хочу перед глазами чётко иметь что надо намалевать
1
1 / 1 / 0
Регистрация: 16.12.2011
Сообщений: 76
07.02.2012, 15:33  [ТС]
0
1 / 1 / 0
Регистрация: 16.12.2011
Сообщений: 76
07.02.2012, 15:34  [ТС]
только ярусы этажей и окошки должны быть одинаковые (координаты не известны,их вводить нужно)
0
07.02.2012, 15:50

Не по теме:

Калерчик, попробую помочь...

1
1 / 1 / 0
Регистрация: 16.12.2011
Сообщений: 76
07.02.2012, 15:55  [ТС]
буду оч благодарна
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
07.02.2012, 16:35
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Калерчик Посмотреть сообщение
буду оч благодарна
- вот накидал
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
#include <windows.h>
 
#define BLK RGB(0,0,0)
#define WHT RGB(255,255,255)
 
HPEN  getPen(int iPEN_STYLE, int iPEN_SIZE, int iCOLORREF);
BOOL  PlotRect(HDC hDC, HPEN hPen, COORD BGN, COORD END);
 
int main()
{
    HWND hWnd = GetForegroundWindow();
    HPEN BPEN = getPen(PS_SOLID, 2, BLK);
    HPEN WPEN = getPen(PS_SOLID, 2, WHT);
    HBRUSH BK = CreateSolidBrush(BLK);//Нужна чтобы зарисовать контекст DC
    
    SHORT Line;
    SHORT Size= 80;//Размер стороны квадрата
    COORD BGN = {0};
    COORD END = {0};
    RECT pRECT= {0};
    GetWindowRect(hWnd,&pRECT);
    HDC hDC = GetWindowDC(hWnd);
    if(hDC)
    {
        SetBkMode(hDC,TRANSPARENT);
        while(true)//Простая перерисовка каждые 50 мсек
        {
            SelectObject(hDC,BK);
            for(Line = 0; Line < 3; Line++)//3 - число этажей, можно изменять
            {
                BGN.X = 10;
                BGN.Y = 40 + Size*Line;
                END.X = BGN.X + Size;
                END.Y = BGN.Y + Size;
                PlotRect(hDC, WPEN, BGN, END);
                BGN.X = BGN.X + Size/4;
                BGN.Y = BGN.Y + Size/4;
                END.X = BGN.X + Size/2;
                END.Y = BGN.Y + Size/2;
                PlotRect(hDC, WPEN, BGN, END);
            }
            Sleep(50);//50 мсек
        }
        ReleaseDC(hWnd,hDC);//Высвобождаем графический контекст консоли
    }
    else
        MessageBox(hWnd,"Can't get drawing context of console",NULL,MB_OK);
    return 0;
}
 
HPEN getPen(int iPEN_STYLE, int iPEN_SIZE, int iCOLORREF)
{
    return CreatePen(iPEN_STYLE, iPEN_SIZE, iCOLORREF);
}
 
BOOL PlotRect(HDC hDC, HPEN hPen, COORD BGN, COORD END)
{
    SelectObject(hDC,hPen);
    return Rectangle(hDC,BGN.X, BGN.Y, END.X, END.Y);
}
Миниатюры
Построить на экране рисунок одно подъездного дома, если известны координаты левого верхнего угла дома  
3
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
07.02.2012, 16:37
Если компилятор будет ругаться сюда
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
MessageBox(hWnd,"Can't get drawing context of console",NULL,MB_OK);
Записываем так MessageBoxA(hWnd,"Can't get drawing context of console",NULL,MB_OK);
1
1 / 1 / 0
Регистрация: 16.12.2011
Сообщений: 76
07.02.2012, 16:46  [ТС]
а можете компилятор кинуть, а то с форума закачиваются с какой-то ошибкой
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
07.02.2012, 17:07
Цитата Сообщение от Калерчик Посмотреть сообщение
а можете компилятор кинуть, а то с форума закачиваются с какой-то ошибкой
- VisualStudio 6.0. А какой компилятор у вас???Можно посмотреть скрин ошибки???

Добавлено через 2 минуты

Не по теме:

Калерчик, создайте срр-файл и нажмите построить проект из существующего кода, не делайте SimpleAplicationProject или куда хуже Win32 Project - это простейшая консоль и ошибки там могут возникнуть лишь в MessageBox в остальном им просто неоткуда браться...

0
1 / 1 / 0
Регистрация: 16.12.2011
Сообщений: 76
07.02.2012, 17:25  [ТС]
Visual C++ 2010 Express ошибка 135
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
07.02.2012, 17:45
Цитата Сообщение от Калерчик Посмотреть сообщение
Visual C++ 2010 Express ошибка 135
- Express крайне урезанная версия в её составе наверное даже windows.h нет. Чтобы мой код пошёл нужна Standart или Full Edition
1
1 / 1 / 0
Регистрация: 16.12.2011
Сообщений: 76
07.02.2012, 17:53  [ТС]
а можете по строчное объяснить работу программы
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
07.02.2012, 18:02
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
HWND hWnd = GetForegroundWindow();
- получаем дескриптор окна консоли

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
HPEN BPEN = getPen(PS_SOLID, 2, BLK);
* * * * HPEN WPEN = getPen(PS_SOLID, 2, WHT);
- получаем чёрную и белую "ручки"(в общем это объект который оставляет след определённой ширины и цвета)

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
HBRUSH BK = CreateSolidBrush(BLK);
- создаём чёрную "кисть" (аналог ручки, но будет красить всю область сразу а не оставлять в ней след, это даже больше на Ведро в Paint похоже)

Вот это вообще можно убрать, я сначала думать делать программу по другому, в общем это старые мысли остались
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
RECT pRECT= {0};
* * * * GetWindowRect(hWnd,&pRECT);
- а так это получение координат области окна консоли

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
HDC hDC = GetWindowDC(hWnd);
- получаем графический контекст устройства консоли

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
SelectObject(hDC,BK);
- красим DC в цвет нашей кисти

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
for(Line = 0; Line < 3; Line++)//3 - число этажей, можно изменять
C++
1
2
3
4
5
6
7
8
9
10
11
12
{
  BGN.X = 10;
  BGN.Y = 40 + Size*Line;
  END.X = BGN.X + Size;
  END.Y = BGN.Y + Size;
  PlotRect(hDC, WPEN, BGN, END);
  BGN.X = BGN.X + Size/4;
  BGN.Y = BGN.Y + Size/4;
  END.X = BGN.X + Size/2;
  END.Y = BGN.Y + Size/2;
  PlotRect(hDC, WPEN, BGN, END);
}
- рисуем квадраты

Дальше всё понятно...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.02.2012, 18:02
Помогаю со студенческими работами здесь

Координаты X,Y верхнего левого угла выделенной ячейки в DataGridView
Как вычислить?

Как вычислить координаты левого верхнего угла рисунка, на html странице?
сбж

Как получить координаты курсора от левого верхнего угла текущей формы
Всем привет! У меня следующий вопрос: как получить координаты курсора от левого верхнего угла текущей формы?!, ведь ф-ция GetCursorPos()...

Как вычислить координаты левого верхнего угла рисунка, на html странице?
sbj

Как в PictureBox начальные координаты с верхнего левого угла перенести на нижний левый?
Помогите пожалуйста, как это реализовать в с++ windows forms (это необходимо для задачи с шариком брошенным под углом к горизонту)


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru