Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2018, 11:05   #1
Stas Galabud
Новичок
Джуниор
 
Регистрация: 07.02.2018
Сообщений: 1
Вопрос Графика С++

Здравствуйте! Прошу помощи
У меня есть код программы, который перемещает треугольник, меняя при этом цвет.
Нужно сделать так, чтобы он увеличивался,уменьшался и поворачивался.
Заранее спасибо
Код:
Код:
#include <windows.h>
#include <iostream>
#include <conio.h>
using namespace std;

POINT op;
HWND hWnd;
HDC hdc; 
HPEN p1;
int *xg, *yg;
void initializeFigure(int *&x, int *&y)
{
	x = new int[7];
	y = new int[7];

	x[0] = 120; y[0] = 80; 
	x[1] = 50; y[1] = 200;
	x[2] = 200; y[2] = 200;
	x[3] = 120; y[3] = 80;
}

void Triangle(int kX, int kY, int red, int green, int blue)
{ 

	p1 = CreatePen(PS_SOLID, 2, RGB(red, green, blue));
	SelectObject(hdc, p1);  

	for (int i = 0; i<7; i++) 
	{
		xg[i] += kX;
		yg[i] += kY;
	}

	MoveToEx(hdc, xg[0], yg[0], &op); 
	LineTo(hdc, xg[1], yg[1]); 
	LineTo(hdc, xg[2], yg[2]); 
	LineTo(hdc, xg[3], yg[3]); 
}
int main() {
	cout << "Control - Arrows: Left,Right,Up,Down" << endl;
	cout << "SPACE - quit" << endl;

	POINT op;
	hWnd = GetConsoleWindow(); 
	hdc = GetDC(hWnd); 
	initializeFigure(xg, yg); 

	Triangle(0, 0, 255, 255, 255);
	
	int i;
	do 
	{
		i = 0;
		char key;
		key = _getch(); 
		switch (key) 
		{

		case 72: 
			Triangle(0, 0, 0, 0, 0); 
			Triangle(0, -10, 128, 0, 128);
			break;
		case 75:
			Triangle(0, 0, 0, 0, 0);
			Triangle(-10, 0, 240, 128, 128); 
			break;
		case 80:
			Triangle(0, 0, 0, 0, 0); 
			Triangle(0, +10, 255, 0, 0);
			break;
		case 77:
			Triangle(0, 0, 0, 0, 0);
			Triangle(+10, 0, 0, 255, 0); 
			break;
		case ' ': 
			ReleaseDC(hWnd, hdc);
			return 0; 
			break;
		}

	} while (i != 1);

	ReleaseDC(hWnd, hdc); 
	cin.get(); 
	return 0;
}

Последний раз редактировалось Аватар; 07.02.2018 в 11:09.
Stas Galabud вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# 3D графика 1сумрак C# (си шарп) 5 21.05.2015 09:24
Автоматическое изменение графика при переносе данных, формулы и графика на другой лист REztor Microsoft Office Excel 0 01.06.2013 18:01
Графика на Си DimR Фриланс 8 28.02.2011 09:51
графика jenja Общие вопросы C/C++ 0 25.05.2009 11:28