51345

Рисование в C++ Builder

Лабораторная работа

Информатика, кибернетика и программирование

Цель работы: Написать программу, рисующую изображение по заданному на занятии образцу. Задание для варианта – рисование дома.

Русский

2014-02-09

74 KB

17 чел.

Лабораторная работа 3

Рисование в C++ Builder

Выполнил: Шуклецов М.А.

 ФРТ, гр. 2106

Цель работы: Написать программу, рисующую изображение по заданному на занятии образцу. Задание для варианта – рисование дома.

Общий вид программы следующий:

Здесь мы видим следующие элементы управления:

«Рисовать» - собственно по нажатию на кнопку рисуется изображение

Код программы:

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

       : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

//Рисование неба

Canvas->Brush->Color=(TColor)RGB(0,150,255);  //Выбор цвета пера

Canvas->FloodFill(Width/2,Height/2, NULL, fsBorder);  //Заполнение экрана цветом

// Рисование травы(Широкая линия)

Canvas->Pen->Color=(TColor)RGB(150,255,0);  

Canvas->Pen->Width=200;     //Толщина пера

Canvas->MoveTo(0,Height-100);    //Переместить перо в точку

 Canvas->LineTo(Width,Height-100);    //Провести линию до точки

 // Рисование дома

Canvas->Brush->Color=(TColor)RGB(255,0,0);

TRect tRect(Width/2,Height-200,200,200);   //tRect с координатами

Canvas->FillRect(tRect);     //заполнение tRect цветом

 //Рисование крыши(треугольник) через TPoint с заданием координат каждой точки

Canvas->Brush->Color=(TColor)RGB(255,0,0);

Canvas->Pen->Width=10;

TPoint tPoints[3];   //Объявление точек

tPoints[0].x = 150;   //Задание координат

tPoints[0].y = 200;

tPoints[1].x = 320;

tPoints[1].y = 50;

tPoints[2].x = 500;

 tPoints[2].y = 200;

tPoints[3].x = 150;

tPoints[3].y = 200;

  Canvas->Polyline(tPoints,3);  //Соединение точек

//Рисование солнца(круг)

Canvas->Brush->Style=bsHorizontal;    //Стиль пера

Canvas->Pen->Color = (TColor)RGB(255,255,0);

Canvas->Pen->Width=50;

Canvas->Arc(0,0,50,50,250,0,250,0);   //Рисование круга

}

//---------------------------------------------------------------------------

Вывод: Мы научились рисовать через Canvas на форме произвольные изображения.


 

А также другие работы, которые могут Вас заинтересовать

19542. WaveLet- преобразования 322.83 KB
  2 Лекция 11. WaveLet преобразования WaveLetпреобразование является альтернативой преобразованию Фурье в тех случаях когда сигнал не носит периодического характера. Различают непрерывное и дискретное WaveLetпреобразования. Предполагается что все интегралы рассмот...
19543. Wavelet фильтрация 356.85 KB
  1 Лекция 12 Wavelet фильтрация Детализация сигнала Введем обозначение: для любой функции . Положим . Предложение. Если выполнено условие ортогональности то при фиксированном функции образуют ортонормированную систему. Доказательство. Имеем при . Нор...
19544. Шум от квантования сигнала 585.83 KB
  2 Лекция 13. Шум от квантования сигнала. Multiresolution переменная разрешающая способность Пусть справедливо дополнительное предположение: . Из включения вытекает представление где ортогональное дополнение пространства до пространства . При сделанных пре
19545. Быстрые схемы дискретного преобразования Фурье 515.42 KB
  2 Лекция 14. Быстрые схемы дискретного преобразования Фурье. Обычные формулы для вычисления ДПФ требуют большого количества умножений: где число точек в ДПФ. Существуют приемы позволяющие уменьшить это количество. Они называются быстрыми схемами БПФ. Пр
19546. Свертка последовательностей и ее вычисление 174.65 KB
  2 Лекция 15.Свертка последовательностей и ее вычисление Сдвиг последовательности Пусть имеется последовательность . Мы можем превратить ее в бесконечную последовательность положив . Выберем целое и определим . Найдем связь между преобразованиями Фурье э
19547. Автокорреляция и ее вычисление 342.02 KB
  2 Лекция 16. Автокорреляция и ее вычисление Пусть задана бесконечная последовательность . По ней строится автокорреляционная функция . Эта функция играет огромное значение в при обработке сигналов. Основное назначение отыскание максимумов функции котор
19548. Применения автокорреляционной функции 581.1 KB
  2 Лекция 17. Применения автокорреляционной функции Частота основного тона В качестве примера укажем применение автокорреляционной функции для вычисления частоты основного тона речевого сигнала. В настоящее время нет математического определения это...
19549. Эффект Доплера и смежные вопросы 219.53 KB
  1 Лекция 18. Эффект Доплера и смежные вопросы Рассмотрим задачу поиска сигнала заданного вида во входном сигнале на следующем примере. Передатчик излучает сигнал который отражается от объекта и приходит в виде сигнала . Если объект неподвижен то . 1 Здес...
19550. Преобразование Хартли 280.49 KB
  1 Лекция 19. Преобразование Хартли Преобразование Хартли является аналогом преобразования Фурье отображая вещественный сигнал в вещественный. Положим . Тогда . Найдем формулу обращения. Для этого установим связь с преобразованием Фурье. По определению = . Н