51345

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

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

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

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

Русский

2014-02-09

74 KB

18 чел.

Лабораторная работа 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 на форме произвольные изображения.


 

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

40900. Відкриті резонатори 118.5 KB
  Тут не можна використовувати геометричні наближення потрібно розв’язувати рівняння Максвела. Розв’яжемо рівняння Максвела для сферичного діелектричного резонатора. Щоб отримати саме хвильове рівняння де була б ще й похідна необхідно зробити заміну: . Розв’яжемо простіше рівняння для та методом відокремлених змінних: тоді .
40901. Метод магнітної стінки 112.5 KB
  Обернена ситуація – хвиля виходить з металу або діелектрика в вакуум. Зліва – стояча хвиля справа – біжуча звичайна зі сталою амплітудою. вакуум метал Пряма хвиля ідбита хвиля Граничні умови:.
40902. Ортогональність власних хвиль у хвильоводі 125.5 KB
  Запишемо лему Лоренца для цього випадку. ( - стала розповсюдження.) У вигляді хвилі візьмемо властивість хвилі у хвильоводі: ; - позначення. бо розглядаємо власні хвилі і зовнішніх струмів немає.
40903. Збудження обємних резонаторів 136.5 KB
  Таким чином маємо ортонормованість власних функцій резонатора з нормою яку легко знайти. Таким чином МП – псевдовектор ЕП – вектор. Таким чином для гармонічних полів: . Таким чином довели строге рівняння Пуансона для електростатичної частини полів.
40904. Неоднорідності у хвильоводі 151 KB
  Таким чином ми розв’язали рівняння Максвела, не розв’язуючи їх. (Зауваження: ми не враховували електростатичних полів). Тепер зашиємо розв’язки справа та зліва, наклавши граничні умови при (всі поля повинні бути неперервні)
40905. Струми і напруги в техніці НВЧ 139 KB
  Опір хвильовода теж можна визначити порізному: . Таким чином повний опір залежить від координат. Опір в точці в точці навантаження: . Якщо тобто ми розглянули точку знаходження навантаження маємо опір .
40906. Виявлення сигналів НВЧ 107.5 KB
  Еквівалентна схема діодадетектора: Ідеальна частота оскільки лише та покращити не можна. Визначимо потужність яку цей діод може зареєструвати: знайдемо чутливість приймача на базі квадратичного детектора. Якість детектора .
40907. Лінійний детектор змішувач 143 KB
  Шум завжди підсилюється більше ніж сигнал, тому показує, у скільки разів шум підсилюється більше, ніж сигнал. , бо немає схем в яких . , де - шум, згенерований всередині. Позначено - ми виносимо джерело струму за підсилювач. Погано в формулі те, що залежить від , тобто від оточуючого середовища. Домовились, що . Тоді для добрих приймачів: , де - еквівалентна температура входу (шуму) приймача.
40908. Вимірювання опорів 97 KB
  Нехай в лінію з опором підключили навантаження . , тому частина енергії відбивається. Можна паралельно підключити лінію з закороткою, яку можна рухати вздовж лінії. Це шлейфовий трансформатор або тромбон. Опір шлейфа: . Ми ставимо закоротку на кінці шлейфу, , тоді . Таким чином ми можемо ввести в лінію будь-який реактивний опір (закоротка не вносить активного опору).