Помощь в учёбе, очень быстро...
Работаем вместе до победы

Компьютерная графика. 
Компьютерная графика

РефератПомощь в написанииУзнать стоимостьмоей работы

Необходимо управлять его размерами и положением на экране Задание 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.

Результат работы программы 2.

Показать весь текст
Заполнить форму текущей работой