Компьютерная графика.
Компьютерная графика
Необходимо управлять его размерами и положением на экране Задание 2: Локон Аньези. Mouse→CursorPos. x>Form1→Left+Shape1→Left+Shape1→Width-15) & (Mouse→CursorPos. xLeft+Shape1→Left+Shape1→Width+15)). If ((Mouse→CursorPos. y>Form1→Top+Shape1→Top+ (Form1→Height-Form1>ClientHeight) — 15) & (Mouse→CursorPos. y. Выведем на экран координаты мыши и прямоугольника. Опять запомним координаты… Читать ещё >
Компьютерная графика. Компьютерная графика (реферат, курсовая, диплом, контрольная)
Постановка задачи
Задание 1: На экране изображён прямоугольник.
Необходимо управлять его размерами и положением на экране Задание 2: Локон Аньези.
Y=A3/ (X2 + A2).
на промежутке f [-5, 5], где A=2.
Текст программы 1
// —————————————————————————————————————;
#include.
#pragma hdrstop.
#include «Unit1. h» .
// —————————————————————————————————————;
#pragma package (smart_init).
#pragma resource «*. dfm» .
TForm1 *Form1;
bool mousedown1;
int x0, y0;
// —————————————————————————————————————;
__fastcall TForm1: TForm1 (TComponent* Owner).
: TForm (Owner).
{.
}.
// —————————————————————————————————————;
void __fastcall TForm1: FormMouseMove (TObject *Sender, TShiftState Shift,.
int X, int Y).
{.
// выведем на экран координаты мыши и прямоугольника.
Lab1->Caption=IntToStr (Mouse->CursorPos. x-Form1->Left);
Lab2->Caption=IntToStr (Mouse->CursorPos. y-Form1->Top);
Lab3->Caption=IntToStr (Shape1->Left);
Lab4->Caption=IntToStr (Shape1->Top);
Lab5->Caption=IntToStr (Shape1->Left+Shape1->Width);
Lab6->Caption=IntToStr (Shape1->Top+Shape1->Height);
}.
void __fastcall TForm1: Shape1MouseDown (TObject *Sender,.
TMouseButton Button, TShiftState Shift, int X, int Y).
{.
mousedown1=true; // нажали кнопку мыши.
// запомним координаты мыши при нажатии кнопки.
x0=Mouse->CursorPos. x;
y0=Mouse->CursorPos. y;
}.
void __fastcall TForm1: Shape1MouseUp (TObject *Sender, TMouseButton Button,.
TShiftState Shift, int X, int Y).
{.
mousedown1=false; // отпустили кнопку мыши.
}.
void __fastcall TForm1: Shape1MouseMove (TObject *Sender, TShiftState Shift,.
int X, int Y).
{.
Shape1->Cursor=crSizeAll; // курсор по центру.
if ((Mouse->CursorPos. x>Form1->Left+Shape1->Left-15) &.
- (Mouse->CursorPos. xLeft+Shape1->Left+15) |
- (Mouse->CursorPos. x>Form1->Left+Shape1->Left+Shape1->Width-15) & (Mouse->CursorPos. xLeft+Shape1->Left+Shape1->Width+15))
Shape1->Cursor=crSizeWE; // курсор слева и справа.
if ((Mouse->CursorPos. y>Form1->Top+Shape1->Top+ (Form1->Height-Form1>ClientHeight) — 15) & (Mouse->CursorPos. y.
Top+Shape1->Top+ (Form1->Height-Form1->ClientHeight) +15) |.
- (Mouse->CursorPos. y>Form1->Top+Shape1->Top+
- (Form1->Height-Form1->ClientHeight) +Shape1->Height-15) &
- (Mouse->CursorPos. yTop+Shape1->Top+
- (Form1->Height-Form1->ClientHeight) +Shape1->Height+15))
Shape1->Cursor=crSizeNS; // курсор сверху и снизу.
if (mousedown1==true).
{.
// двигаем прямугольник.
Shape1->Left=Shape1->Left+ (Mouse->CursorPos. x-x0);
Shape1->Top=Shape1->Top+ (Mouse->CursorPos. y-y0);
// двигаем левый край.
if ((Mouse->CursorPos. x>Form1->Left+Shape1->Left-15) &.
(Mouse->CursorPos. xLeft+Shape1->Left+15)).
Shape1->Width=Shape1->Width- (Mouse->CursorPos. x-x0);
// двигаем правый край.
if ((Mouse->CursorPos. x>Form1->Left+Shape1->Left+.
Shape1->Width-15) & (Mouse->CursorPos. xLeft+.
Shape1->Left+Shape1->Width+15)).
{.
Shape1->Left=Shape1->Left- (Mouse->CursorPos. x-x0);
Shape1->Width=Shape1->Width+ (Mouse->CursorPos. x-x0);
}.
// двигаем верх.
if ((Mouse->CursorPos. y>Form1->Top+Shape1->Top+.
- (Form1->Height-Form1->ClientHeight) — 15) &
- (Mouse->CursorPos. yTop+Shape1->Top+
- (Form1->Height-Form1->ClientHeight) +15))
Shape1->Height=Shape1->Height- (Mouse->CursorPos. y-y0);
// двигаем низ.
if ((Mouse->CursorPos. y>Form1->Top+Shape1->Top+.
- (Form1->Height-Form1->ClientHeight) +Shape1->Height-15) &
- (Mouse->CursorPos. yTop+Shape1->Top+
- (Form1->Height-Form1->ClientHeight) +Shape1->Height+15))
{.
Shape1->Top=Shape1->Top- (Mouse->CursorPos. y-y0);
Shape1->Height=Shape1->Height+ (Mouse->CursorPos. y-y0);
}.
}.
// опять запомним координаты мыши при нажатии кнопки.
x0=Mouse->CursorPos. x;
y0=Mouse->CursorPos. y;
Form1->FormMouseMove (Sender, Shift, X, Y); // обновим координаты.
}.
// —————————————————————————————————————;
Текст программы 2
#include.
#pragma hdrstop.
#include «Unit1. h» .
#include.
#include.
#include.
#include.
#pragma package (smart_init).
#pragma resource «*. dfm» .
TForm1 *Form1;
// —————————————————————————————————————;
__fastcall TForm1: TForm1 (TComponent* Owner).
: TForm (Owner).
{.
}.
// —————————————————————————————————————;
void __fastcall TForm1: OnPaint (TObject *Sender).
{.
float x, y;
float dx=0.001; // приращение аргумента t.
int d=0;
int A=2; // шаг для построения сетки.
int x0=ClientWidth/2; // центр окна по х.
int y0=ClientHeight/2; // центр окна по у.
int px, py;
float my=50; // масштаб по оси y.
float mx=50; // масштаб по оси x.
// ————————-Сетка и оси——————————————————;
Canvas->Pen->Color =clNavy; // стиль сетки.
Canvas->Pen->Style = psDot;
// ————————-вертикальная сетка——————————————-;
do.
{.
Canvas->MoveTo (d+11,5);
Canvas->LineTo (d+11,ClientHeight-5);
d+=60;
}.
while (d<=ClientWidth-8);
// ————————-горизонтальная сетка—————————————-;
d=0;
do.
{.
Canvas->MoveTo (11,3+d);
Canvas->LineTo (ClientWidth-10,3+d);
d+=60;
}.
while (d<=ClientHeight-5);
// ———————- - ОСИ Х и У — —————————————————-;
Canvas->Pen->Color =clNavy; // стиль осей.
Canvas->Pen->Style = psSolid;
Canvas->Pen->Width=2;
Canvas->MoveTo (x0,5);
Canvas->LineTo (x0,ClientHeight-5);
Canvas->MoveTo (11,y0);
Canvas->LineTo (ClientWidth-10,y0);
// ————————-Оцифровка сетки————————————————;
d=0;
do.
{.
if (d! =0).
Canvas->TextOutA (x0−13,y0+d-15,FloatToStrF (-d/60,ffGeneral, 6,3));
Canvas->TextOutA (x0−13+d, y0+3,FloatToStrF (d/60,ffGeneral, 6,3));
if (d! =0).
Canvas->TextOutA (x0-d+5,y0+3,FloatToStrF (-d/60,ffGeneral, 6,3));
Canvas->TextOutA (x0−13,y0-d+3,FloatToStrF (d/60,ffGeneral, 6,3));
d+=60;
}.
while (d<=ClientWidth-20);
// ————————-Построение графика——————————————-;
for (x=-5; x<=5; x+=dx).
{.
y=A*A*A/ (x*x + A*A);
px= (x0+mx*x);
py= (y0-my*y);
Canvas->Pixels [px] [py] =clBlack;
} }.
// —————————————————————————————————————;
Результат работы программы 1
Результат работы программы 2.