Ellipse( Х_верхнего_угла, Y_верхнего_угла, Х_верхнего_угла, Y_верхнего_угла );

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

1. Запустить C++ Builder:

Меню «Пуск» («Start») в левом нижнем углу.

Подменю «Программы» («Programs»).

Подменю «Borland C++ Builder 6».

Программа «C++Builder 6»

2. Создать новый проект:

Меню «File» в левом верхнем углу.

Меню «New Application». Если будет предложено сохранить старый проект, не сохранять.

Сохранить проект под новым именем

Создать папку "C:\temp\<фамилия_латинскими_буквами>_lab_2".

Если в каталоге "C:\temp" папка не может быть создана, создать её на диске "D:"

Для создания папки можно использовать Total Commander либо "Мой компьютер"

Меню «File» в левом верхнем углу.

Меню «Save All..».

Сохранить все файлы в созданную ранее директорию. Названия файлов не изменять.

Добавить на форму новый элемент Image

Выбрать закладку «Additional» в панели инструментов.

На закладке выбрать элемент Image (при поднесении к элементу курсора мыши, появляется подсказка названия элемента).

После выбора элемента, поместить его на форму Form1.

Проверить выполнение программы пункты 5, 6 предыдущей работы.

Создать обработчик на перемещение курсора над объектом Image

Для создания обработчика события, выберите элемент Image1. Двойным щелчком нажмите на свойство OnMouseMove в окне Object inspector, закладка Events. После чего вам будет предложено написать самим обработчик, заголовок обработчика будет создан автоматически:

void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,

int X, int Y)

{

<здесь_должен_размещаться_обработчик>

}

Для примера запишем функцию рисования круга во время перемещения манипулятора мыши.

 

void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,

int X, int Y)

{

Image1->Canvas->Ellipse(X-10,Y-10,X+10,Y+10);

}

Вывод изображения

При перемещении изображения, остается след, но этого можно избежать, стирая экран перед выводом нового изображения. Стереть экран можно выводом прямоугольника по размерам картинки.

Для примера допишем функцию:

void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,

int X, int Y)

{

Image1->Canvas->Rectangle( 0, 0, Image1->Width, Image1->Height );

Image1->Canvas->Ellipse( X-10,Y-10,X+10,Y+10 );

}

Запустите программу.

Формат вывода изображения

Для вывода изображения можно использовать различные цвета. Для этого свойству Image1->Canvas->Pen->Color необходимо присвоить соответствующее значение.

Для примера допишем функцию:

void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,

int X, int Y)

{

Image1->Canvas->Rectangle( 0, 0, Image1->Width, Image1->Height );

Image1->Canvas->Pen->Color = clRed;

Image1->Canvas->Ellipse( X-10,Y-10,X+10,Y+10 );

}

Запустите программу.

Основные цвета:

clBlack чёрный

clBlue синий

clGreen зелёный

clRed красный

clOlive коричневый

clGray серый

clWhite белый

clYellow жёлтый

Формат вывода изображения

Для вывода изображения можно использовать различные цвета не только для линий, но и для заполненных областей. Для этого свойству Image1->Canvas->Brush->Colorнеобходимо присвоить соответствующее значение.

 

Для примера запишем функцию:

void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,

int X, int Y)

{

Image1->Canvas->Brush->Color = clWhite;

Image1->Canvas->Rectangle( 0, 0, Image1->Width, Image1->Height );

Image1->Canvas->Brush->Color = clGreen;

Image1->Canvas->Pen->Color = clRed;

Image1->Canvas->Ellipse( X-10,Y-10,X+10,Y+10 );

}

 

Запустите программу.

Основные цвета:

clBlack чёрный

clBlue синий

clGreen зелёный

clRed красный

clOlive коричневый

clGray серый

clWhite белый

clYellow жёлтый

Выполнить индивидуальное задание

Доработать программу для вывода на экран объекта, согласно индивидуальному заданию, и позволяет перемещать его с помощью манипулятора мышь. Объект выбирается по таблице (по номеру компьютера за которым находится студент), или назначается преподавателем.

 

Функции для работы с графикой:

 

Ellipse( Х_верхнего_угла, Y_верхнего_угла, Х_верхнего_угла, Y_верхнего_угла );

рисовать эллипс или круг.