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

Разработка программы, которая позволяет управлять размерами и положением прямоугольника на экране. Локон Аньези как плоская алгебраическая кривая третьего порядка, алгоритм программы ее построения. Демонстрация результатов работы разработанных программ.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 12.10.2017
Размер файла 168,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

8

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

Российский государственный гидрометеорологический университет

Кафедра МИТ

Контрольная работа

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

Выполнил: студент гр. ОИ-209

Пухов К.В.

Проверил: Шишкин А.Д.

программа локон аньези

Санкт-Петербург

2008

Постановка задачи

Задание 1: На экране изображён прямоугольник.

Необходимо управлять его размерами и положением на экране

Задание 2: Локон Аньези

Y=A3/ (X2 + A2)

на промежутке f [-5, 5], где A=2

Текст программы 1

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

#include <vcl. h>

#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. x<Form1->Left+Shape1->Left+15) |

(Mouse->CursorPos. x>Form1->Left+Shape1->Left+Shape1->Width-15) & (Mouse->CursorPos. x<Form1->Left+Shape1->Left+Shape1->Width+15))

Shape1->Cursor=crSizeWE; // курсор слева и справа

if ( (Mouse->CursorPos. y>Form1->Top+Shape1->Top+ (Form1->Height-Form1>ClientHeight) - 15) & (Mouse->CursorPos. y<Form1->

Top+Shape1->Top+ (Form1->Height-Form1->ClientHeight) +15) |

(Mouse->CursorPos. y>Form1->Top+Shape1->Top+

(Form1->Height-Form1->ClientHeight) +Shape1->Height-15) &

(Mouse->CursorPos. y<Form1->Top+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. x<Form1->Left+Shape1->Left+15))

Shape1->Width=Shape1->Width- (Mouse->CursorPos. x-x0);

// двигаем правый край

if ( (Mouse->CursorPos. x>Form1->Left+Shape1->Left+

Shape1->Width-15) & (Mouse->CursorPos. x<Form1->Left+

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. y<Form1->Top+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. y<Form1->Top+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 <vcl. h>

#pragma hdrstop

#include "Unit1. h"

#include <stdlib. h>

#include <conio. h>

#include <stdio. h>

#include <math. h>

#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

Размещено на Allbest.ru

...

Подобные документы

  • Исследование арифметических выражений и разработка простых программ. Таблица переменных для алгоритма и программы. Алгоритм решения, текст программы на языке С. Разработка программы вычисления значений выражений, сравнение результатов с ручным подсчетом.

    лабораторная работа [282,7 K], добавлен 30.01.2015

  • Разработка программы проверки знаний для тестирования студентов по программированию с кодом на языке Delphi. Проектирование визуального интерфейса и словесный алгоритм работы программы. Алгоритмы разработанных процедур и функций, инструкция пользователя.

    курсовая работа [506,5 K], добавлен 21.02.2011

  • Разработка программы, которая позволяет вычислить данные для сечений стрежневых конструкций, нагруженных по определённой схеме, с вводом и выводом данных при помощи конструктивного графического интерфейса. Листинг и результаты работы программы.

    курсовая работа [7,8 M], добавлен 19.09.2010

  • Оценка неизвестной функции распределения величины или ее плотности распределения вероятности. Алгоритм основной программы, функции для построения графика исходного массива, гистограммы и графика функции Лапласа. Результат обработки сейсмического сигнала.

    курсовая работа [194,4 K], добавлен 16.12.2012

  • Алгоритм работы программы, которая выполняет записи в log-файл действий, идентифицированных как попытки атаки на страницу авторизации пользователей условного ресурса. Макет веб-сайта, листинги файлов программы и процесс ее взаимодействия с СУБД MySQL.

    курсовая работа [1,3 M], добавлен 22.06.2015

  • Организация вычислительных процессов и программирования на алгоритмическом языке. Создание программы "Калькулятор". Выбор языка и среды программирования. Функциональная схема работы программы, описание разработанных алгоритмов. Способы устранения ошибок.

    курсовая работа [434,1 K], добавлен 27.08.2012

  • Анализ и постановка задач дисциплины "Компьютерная графика". Разработка структуры, функциональной схемы и программной документации. Руководство программисту и оператору. Выбор и обоснование языка программирования. Описание процедур, функций, оценок.

    дипломная работа [3,6 M], добавлен 16.11.2011

  • Разработка базы данных "Студенты", которая позволяет производить операции с данными: регистрацию студентов в базе данных, а также удаление, изменение, резервное копирование информации о студентах. Алгоритм работы программы и вспомогательных процедур.

    курсовая работа [27,5 K], добавлен 06.02.2013

  • Составление программы, которая по введенным значениям x, y и номеру действия выполняет то или иное арифметическое действие над положительными числами. Алгоритм и код программы. Проведение тестовых наборов. Тестирование и результат работы программы.

    лабораторная работа [961,5 K], добавлен 23.11.2014

  • Методика и основные этапы создания программы, взаимодействующей с пользователем посредствам графического интерфейса и выполняющей помехоустойчивое кодирование информации, ее цели. Алгоритм работы программы, отладка и проверка ее работоспособности.

    курсовая работа [43,1 K], добавлен 12.05.2013

  • Графическая схема алгоритма выполнения программы определения запасов сырья. Решение задачи с помощью программы MS Excel. Разработка макроса для построения диаграммы. Использование интерфейса программы для работы с таблицей. Разработка базы данных.

    курсовая работа [1,2 M], добавлен 24.04.2014

  • Разработка программы для изображения в графическом режиме на экране структуры модели вычислительной машины и демонстрация функционирования при выполнении программы вычисления. Описание процесса разработки, обоснование структур данных и их форматов.

    курсовая работа [170,3 K], добавлен 07.06.2019

  • Разработка программы в среде Delphi, показывающей на экране возможные варианты выбранной шахматной фигуры для хода. Спецификация исходных данных и функций программы, тексты разработанных классов приложения и их ключевые методы, тестирование программы.

    курсовая работа [69,4 K], добавлен 19.10.2010

  • Методика разработки, практической апробации программы в среде Turbo Pascal по построению графика прямой линии регрессии. Формирование блок-схемы данной программы, ее листинг. Построение графика с помощью математических формул и графического модуля Graph.

    контрольная работа [46,2 K], добавлен 22.07.2011

  • Формальная схема и закон функционирования моделируемой вычислительной системы для обработки программ. Составление алгоритма моделирующей программы на языке GPSS и листинга программы для стохастической модели. Верификация программы и анализ результатов.

    курсовая работа [347,3 K], добавлен 21.01.2013

  • Выбор и обоснование методов составления схемы алгоритма и разработки программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Алгоритм Горнера. Программа на языке Quick BASIC (с распечаткой листинга).

    курсовая работа [55,1 K], добавлен 21.11.2012

  • Основные операции с матрицами. Проектирование объектно-ориентированного модуля для работы с матрицами в среде Delphi 7. Разработка программы, которая позволяет выполнять различные действия над матрицами. Описание интерфейса программы, исходный код модуля.

    курсовая работа [1014,2 K], добавлен 15.01.2013

  • Создание приложения, исполняющего трансляцию программы из языка Паскаль в язык Си: разработка алгоритма реализации задачи, описание необходимых констант, переменных, функций и операторов, представление листинга программы и распечатка результатов.

    курсовая работа [305,9 K], добавлен 03.07.2011

  • Разработка компьютерной программы, которая реализует игру "Арканоид". Освоение приемов программирования на языке С++ с использованием средств OpenGL, разбор структуры и логики игры, приобретение навыков работы с 3D графикой. Руководство пользователя.

    курсовая работа [1,2 M], добавлен 02.03.2017

  • Преобразование матрицы по заданным правилам. Методика работы с массивами, основанная на классических алгоритмах. Разработка и описание блок-схемы алгоритма. Листинг программы, экраны работы и отладки программы. Инструкция для пользователей программы.

    контрольная работа [338,4 K], добавлен 29.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.