Математическое моделирование 3D

Среда для разработчиков программного обеспечения и баз данных. Компоненты, используемые в программе. Использование программы в операционной системе Windows 98/2000/2003/XP. 3D просмотр фигуры, возможность ее поворота в любые стороны на осях x, y, z.

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

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

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

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

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту по дисциплине «Основы алгоритмизации и программирование»

Тема: «Математическое моделирование 3D»

СОДЕРЖАНИЕ

Введение

Компоненты, используемые в программе

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

Заключение

Литература

Приложение А

Приложение Б

Введение

Delphi - лучшая среда для разработчиков программного обеспечения и баз данных, которая позволяет быстро разрабатывать высокопроизводительные и простые в обслуживании приложения для Windows. В Delphi можно составлять проекты для задач практически любого типа: это и расчетные задачи, и задачи работы с файлами, и обработка баз данных, и другие. Наиболее эффектными и интересными являются задачи моделирования различных баз данных. Так как базы данных во многом помогают в любой сфере деятельности.

Среда Delphi визуально реализуется в виде нескольких одновременно раскрытых на экране монитора окон. Количество, расположение, размер и вид окон может меняться разработчиком в зависимости от его потребностей.

Главное окно предназначено для управления процессом создания программы и всегда присутствует на экране. Основное меню содержит все необходимые инструменты для управления проектом. Пиктограммы облегчают доступ к наиболее часто применяемым командам основного меню. Через меню компонентов осуществляется доступ к компонентам Delphi. Каждый компонент имеет определенный набор свойств (параметров), которые разработчик может изменять с помощью окна инспектора объектов или программно.

Окно инспектора объектов (вызывается c помощью клавиши F11) предназначено для изменения свойств выбранных компонентов и состоит из двух страниц. Страница Properties (Свойства) предназначена для изменения необходимых свойств компонента. Страница Events (События) - для определения реакции компонента на то или иное событие (например, нажатие определенной клавиши или щелчок “мышью ” по кнопке).

Окно формы представляет собой проект Windows-окна программы. В это окно в процессе написания программы помещаются необходимые компоненты.

Окно текста программы предназначено для просмотра, написания и редактирования текста программы. При первоначальной загрузке в окне текста программы находится текст, содержащий минимальный набор операторов для нормального функционирования пустой формы в качестве Windows-окна. При помещении некоторого компонента в окно формы текст программы автоматически дополняется описанием необходимых для его работы библиотек стандартных программ (раздел uses) и типов переменных (раздел type).

Переключение между окном формы и окном текста программы осуществляется с помощью клавиши F12.

В настоящее время, в Delphi 2006, можно писать приложения для .NET используя стандартную библиотеку классов .NET, VCL для .NET. Среда также позволяет писать NET-приложения на C# и Win32-приложения на C++. Delphi 2006 содержит функции для написания обычных приложений с использованием билиотек VCL и CLX. Delphi 2006 поддерживает технологию MDA с помощью ECO (Enterprise Core Objects) версии 3.0. В марте 2006 года компания Borland приняла решение о прекращении дальнейшего совершенствования интегрированных сред разработки JBuilder, Delphi и C++Builder по причине убыточности этого направления. Планируется продажа IDE-сектора компании. Группа сторонников свободного программного обеспечения организовала сбор средств для покупки у Borland прав на среду разработки и компилятор. Однако в ноябре того же года было принято решение отказаться от продажи IDE бизнеса. Тем не менее, разработкой IDE продуктов теперь будет заниматься новая компания -- CodeGear, которая будет финансово полностью подконтрольна Borland. Borland продолжил развитие IDE систем под именем Turbo: Turbo Delphi, Turbo Delphi for .NET, Turbo C#, Turbo C++. А в марте 2007 года CodeGear порадовала пользователей обновленной линейкой продуктов Delphi 2007 for Win32 и выходом совершенно нового продукта Delphi 2007 for PHP.

Темой данного курсового проекта является «Учёт компьютерной оргтехники в организации баз данных».

Компоненты, используемые в программе

Label - предназначен для отображения статического текста, то есть надписей и меток на Форме, которые не меняются в течение всего времени работы программы. Конечно, текст надписи, отображаемый компонентом Label можно изменить, но не непосредственно, а только программно

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

BitButton - Командная кнопка. Отличается от стандартной кнопки Button возможностью отображения пиктограммы

Delphi поддерживает три типа файлов -- битовые матрицы, пиктограммы и метафайлы. Все три типа файлов хранят изображения; различие заключается лишь в способе их хранения внутри файлов и в средствах доступа к ним. Битовая матрица (файл с расширением .bmp) отображает цвет каждого пикселя в изображении. При этом информация хранится таким образом, что любой компьютер может отобразить изображение с разрешающей способностью и количеством цветов, соответствующими его конфигурации. Пиктограммы (файлы с расширением .ico) -- это маленькие битовые матрицы. Они повсеместно используются для обозначения значков приложений, в быстрых кнопках, в пунктах меню, в различных списках. Способ хранения изображений в пиктограммах схож с хранением информации в битовых матрицах, но имеются и различия. В частности, пиктограмму невозможно масштабировать, она сохраняет тот размер, в котором была создана. Метафайлы (Metafiles) хранят не последовательность битов, из которых состоит изображение, а информацию о способе создания картинки. Они хранят последовательности команд рисования, которые и могут быть повторены при воссоздании изображения. Это делает такие файлы, как правило, более компактными, чем битовые матрицы.

В Image можно загружать и внешние графические файлы в процессе выполнения приложения. Простейшей и, пожалуй, наиболее часто используемой кнопкой является кнопка Button расположенная на странице библиотеки Standard. Реже используется кнопка BitBtn отличающаяся, прежде всего, возможностью отобразить на ее поверхности изображение. Большинство свойств, методов и событий у этих видов кнопок одинаковы

Основное с точки зрения внешнего вида свойство кнопки -- Caption (надпись). В надписях кнопок можно предусматривать использование клавиш ускоренного доступа, выделяя для этого один из символов надписи. Перед символом, который должен соответствовать клавише ускоренного доступа, ставится символ амперсанта «&». Этот символ не появляется в надписи, а следующий за ним символ оказывается подчеркнутым. Тогда пользователь может вместо щелчка на кнопке нажать в любой момент клавишу Alt совместно с клавишей выделенного символа.

Например, если в вашем приложении имеется кнопка выполнения какой-то операции, вы можете задать ее свойство Caption равным «&Выполнить». На кнопке эта надпись будет иметь вид «Выполнить». И если пользователь нажмет клавиши Alt-В, то это будет эквивалентно щелчку на кнопке.

Основное событие любой кнопки -- OnClick, возникающее при щелчке на ней. Именно в обработчике этого события записываются операторы, которые должны выполняться при щелчке пользователя на кнопке. Помимо этого есть еще ряд событий, связанных с различными манипуляциями клавишами и кнопками мыши.

Свойство Cancel, если его установить в true, определяет, что нажатие пользователем клавиши Esc будет эквивалентно нажатию на данную кнопку. Это свойство целесообразно задавать равным true для кнопок «Отменить» в различных диалоговых окнах, чтобы можно было выйти из диалога, нажав на эту кнопку или нажав клавишу Esc.

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

Целью курсовой работы является разработка 3Д модели по дисциплине основы алгоритмизации и программирования на тему: «Математическое моделирование 3D». Программа должна предоставлять пользователю очень удобный интерфейс для детального просмотра фигуры. Удобный, интуитивно понятный и простой интерфейс должен стать визитной карточкой разрабатываемой программы. В программе должны быть представлены 3д модели фигур и возможность их просмотра пот разным ракурсом.

Заключение

просмотр фигура поворот программа

В результате выполнения данной курсовой работы была создана программа на тему: «Математическое моделирование 3D». Программа имеет удобный пользовательский интерфейс, она написана для использования в операционной системе Windows 98/2000/2003/XP. Пользование программой не составит труда для тех, кто знаком с данной оболочкой. Данный проект позволяет 3д просмотр одной из 3х фигур таких как Треугольник ,Куб ,Многоугольник , возможность их поворота в любые стороны на осях x,y,z для тщательного просмотра фигуры.

Список использованной литературы

1. Фаронов В.В. Delphi 4. Учебный курс. -М.: Нолидж, 2009.

2. Дарахвелидзе П.Г., Марков Е.П. Delphi - среда визуального программирования. -СПб.:BHV-Санкт-Петербург, 2010.

3. Епанешников А.В., Программирование в среде Delphi

4. Учебное пособие. В 4-х частях. Ч.2. ЯзыкObjectPascal 9.0. -М.:ДИАЛОГ-МИФИ, 2014.

Приложение:А

unit Unit1;

interface

uses Windows, Classes, Graphics, Forms, Buttons, Controls, ExtCtrls,

StdCtrls;

type

TForm1 = class(TForm)

Timer: TTimer;

PaintBox: TPaintBox;

Panel1: TPanel;

RadioGroup1: TRadioGroup;

rbTetraedr: TRadioButton;

rbCub: TRadioButton;

rbOktaedr: TRadioButton;

sbtRotateYZf: TSpeedButton;

sbtRotateYZt: TSpeedButton;

sbtRotateXZf: TSpeedButton;

sbtRotateXZt: TSpeedButton;

sbtRotateXYf: TSpeedButton;

sbtRotateXYt: TSpeedButton;

procedure PaintBox_onPaint(Sender: TObject);

procedure TimerTimer(Sender: TObject);

procedure sbtRotate_onMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

procedure sbtRotate_onMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

procedure Form_onCreate(Sender: TObject);

procedure RadioButtons_onClick(Sender: TObject);

procedure Form_onResize(Sender: TObject);

private

public

end;

var

Form1: TForm1;

RotateXYt,RotateXYf,RotateXZt,RotateXZf,RotateYZt,RotateYZf:boolean;

implementation

{$R *.DFM}

const

mCub=8;

mTetr=4;

mOkt=6;

Type

TMain = record

X, Y, Z : double;

Sd : array[1..3] of byte;

Xe, Ye : Integer;

end;

TCub = array[1..mCub] of TMain;

TOkt = array[1..mOkt] of TMain;

TTetr = array[1..mTetr] of TMain;

const

R=15;

A=r*0.8660254;

H=r*0.5;

Cub : TCub = (

{1} (X : -10; Y: -10; Z: -10; Sd:(2,4,8)),

{2} (X : -10; Y: -10; Z: 10; Sd:(0,3,7)),

{3} (X : 10; Y: -10; Z: 10; Sd:(6,4,0)),

{4} (X : 10; Y: -10; Z: -10; Sd:(5,0,0)),

{5} (X : 10; Y: 10; Z: -10; Sd:(6,8,0)),

{6} (X : 10; Y: 10; Z: 10; Sd:(7,0,0)),

{7} (X : -10; Y: 10; Z: 10; Sd:(8,0,0)),

{8} (X : -10; Y: 10; Z: -10; Sd:(0,0,0))

);

Tetr : TTetr = (

{1} (X : 0; Y: R; Z: 0; Sd:(2,3,4)),

{2} (X : 0; Y: -H; Z: R; Sd:(3,4,0)),

{3} (X : A; Y: -H; Z: -H; Sd:(4,0,0)),

{4} (X : -A; Y: -H; Z: -H; Sd:(0,0,0))

);

Okt : TOkt = (

{1} (X : -R; Y: 0; Z: 0; Sd:(6,2,4)),

{2} (X : 0; Y: 0; Z: -R; Sd:(6,3,5)),

{3} (X : R; Y: 0; Z: 0; Sd:(6,4,5)),

{4} (X : 0; Y: 0; Z: R; Sd:(6,5,0)),

{5} (X : 0; Y: -R; Z: 0; Sd:(1,0,0)),

{6} (X : 0; Y: R; Z: 0; Sd:(0,0,0))

);

Var

dxy,dxz,dyz : double; // Угол поворота по осям

Fok : integer = 800; // Фокусное расстояние

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

procedure XYZ(X,Y,Z : double; Var X2,Y2 : integer);

begin

X2:=Round(X*Fok/100+(Form1.PaintBox.Width div 2));

Y2:=Round(Y*Fok/100+(Form1.PaintBox.Height div 2));

end;

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

procedure Pw(var X,Y : double; Al : double);

var

X2, Y2 : double;

sina, cosa : double;

begin

if Al=0 then Exit;

sina :=sin(Al); cosa:=cos(Al);

X2:=(X*Cosa-Y*Sina);

Y2:=(X*Sina+Y*Cosa);

X:=X2; Y:=Y2;

end;

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

procedure TForm1.PaintBox_onPaint(Sender: TObject);

var i,j,c : integer;

qCub:TCub;

qOkt:TOkt;

qTetr:TTetr;

begin

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

if rbCub.Checked then Begin

qCub:=Cub;

for i:=1 to mCub do begin

Pw(qCub[i].X, qCub[i].Y, dxy);

Pw(qCub[i].X, qCub[i].Z, dxz);

Pw(qCub[i].Y, qCub[i].Z, dyz);

XYZ(qCub[i].X, qCub[i].Y, qCub[i].Z, qCub[i].Xe, qCub[i].Ye);

end;

for i:=1 to mCub do

for j:=1 to 3 do

if qCub[i].Sd[J]<>0 then begin

c:=qCub[i].Sd[j];

with PaintBox.Canvas do begin

MoveTo(qCub[i].Xe, qCub[i].Ye);

LineTo(qCub[c].Xe, qCub[c].Ye);

end;

end;

end;

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

if rbTetraedr.Checked then Begin

qTetr:=Tetr;

for i:=1 to mTetr do begin

Pw(qTetr[i].X, qTetr[i].Y, dxy);

Pw(qTetr[i].X, qTetr[i].Z, dxz);

Pw(qTetr[i].Y, qTetr[i].Z, dyz);

XYZ(qTetr[i].X, qTetr[i].Y, qTetr[i].Z, qTetr[i].Xe, qTetr[i].Ye);

end;

for i:=1 to mTetr do

for j:=1 to 3 do

if qTetr[i].Sd[J]<>0 then begin

c:=qTetr[i].Sd[j];

with PaintBox.Canvas do begin

MoveTo(qTetr[i].Xe, qTetr[i].Ye);

LineTo(qTetr[c].Xe, qTetr[c].Ye);

end;

end;

end;

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

if rbOktaedr.Checked then Begin

qOkt:=Okt;

for i:=1 to mOkt do begin

Pw(qOkt[i].X, qOkt[i].Y, dxy);

Pw(qOkt[i].X, qOkt[i].Z, dxz);

Pw(qOkt[i].Y, qOkt[i].Z, dyz);

XYZ(qOkt[i].X, qOkt[i].Y, qOkt[i].Z, qOkt[i].Xe, qOkt[i].Ye);

end;

for i:=1 to mOkt do

for j:=1 to 3 do

if qOkt[i].Sd[J]<>0 then begin

c:=qOkt[i].Sd[j];

with PaintBox.Canvas do begin

MoveTo(qOkt[i].Xe, qOkt[i].Ye);

LineTo(qOkt[c].Xe, qOkt[c].Ye);

end;

end;

end;

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

end;

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

procedure TForm1.TimerTimer(Sender: TObject);

const N:real=0.03;

begin

if RotateXYt then dxy:=dxy+N;

if RotateXZt then dxz:=dxz+N;

if RotateYZt then dyz:=dyz+N;

if RotateXYf then dxy:=dxy-N;

if RotateXZf then dxz:=dxz-N;

if RotateYZf then dyz:=dyz-N;

if (RotateXYt or RotateXYf or RotateXZt or RotateXZf or RotateYZt or RotateYZf) then PaintBox.Repaint;

end;

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

procedure TForm1.sbtRotate_onMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

if Sender=sbtRotateXYt then RotateXYt:=true;

if Sender=sbtRotateXYf then RotateXYf:=true;

if Sender=sbtRotateXZt then RotateXZt:=true;

if Sender=sbtRotateXZf then RotateXZf:=true;

if Sender=sbtRotateYZt then RotateYZt:=true;

if Sender=sbtRotateYZf then RotateYZf:=true;

end;

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

procedure TForm1.sbtRotate_onMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

if Sender=sbtRotateXYt then RotateXYt:=false;

if Sender=sbtRotateXYf then RotateXYf:=false;

if Sender=sbtRotateXZt then RotateXZt:=false;

if Sender=sbtRotateXZf then RotateXZf:=false;

if Sender=sbtRotateYZt then RotateYZt:=false;

if Sender=sbtRotateYZf then RotateYZf:=false;

end;

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

procedure TForm1.Form_onCreate(Sender: TObject);

begin

dxy:=0.3; dyz:=0.3; dxz:=0.3;

RotateXYt:=false;

RotateXYf:=false;

RotateXZt:=false;

RotateXZf:=false;

RotateYZt:=false;

RotateYZf:=false;

end;

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

procedure TForm1.RadioButtons_onClick(Sender: TObject);

begin

PaintBox.Repaint;

end;

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

procedure TForm1.Form_onResize(Sender: TObject);

begin

Fok:=Round((Width+Height)*0.8);

end;

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

end.

Приложение:Б

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


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

  • Семейство ОС Windows 2000. Windows 2000 Server. Windows 2000 Advanced Server. Windows 2000 Datacenter Server. ОС Windows Server 2003. Организация сети на основе Windows 2000. Службы каталогов, DHCP, DNS, WINS. Конфигурирование сервера.

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

  • Установка операционной системы Windows 2000/XP/2003. Компоненты служб удаленной установки. Автоматическая (unattended) установка ОС из общего каталога на сервере. Установка ОС и приложений из образа, созданного при помощи ПО сторонних производителей.

    реферат [22,4 K], добавлен 03.04.2010

  • Центр обеспечения безопасности (Windows Security Center) в операционной системе Windows XP SP2 и угрозы компьютерной безопасности. Обеспечение безопасности хранения данных в ОС Microsoft. Алгоритм создания отказоустойчивых томов для хранения данных.

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

  • Администрирование дисков в WINDOWS 2000. Новые концепции в Windows 2000. Использование возможностей Disk Management. Двойная загрузка. Приложения в системе с двойной загрузкой. Усложненная процедура установки.

    реферат [15,7 K], добавлен 14.06.2007

  • Прикладные программы и утилиты. Простейшие функции операционной системы. История разработки корпорацией Microsoft Corporation графической операционной оболочки Windows. Версия семейства сетевых ОС Windows NT (Millennium Edition, 2000, XP, Vista, Seven)

    презентация [965,2 K], добавлен 12.10.2013

  • Программное регулирование громкости. Использование программы Windows Media Player, интерфейс программы. Запись музыкального компакт–диска с помощью Windows Media Player. Использование стандартных средств звукозаписи в операционной системе Windows.

    контрольная работа [31,0 K], добавлен 20.01.2011

  • Архитектура Windows NT 5. Приоритеты выполнения программного кода. Описание формата MIDI-данных. Установка драйвера в системе. Выбор средств разработки программного обеспечения. Обработка запросов драйверной модели WDM. Использование библиотеки DirectKS.

    курсовая работа [498,8 K], добавлен 24.06.2009

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

    курсовая работа [352,8 K], добавлен 15.02.2009

  • Оптимизация компьютеров с помощью программы Auslogics Boostspeed. Установка операционной системы Windows XP и программы Microsoft Office 2010. Настройка локальной сети в компьютерном кабинете. Установка и обновление антивирусной программы NOD 32.

    отчет по практике [4,4 M], добавлен 06.04.2015

  • Реестр операционной системы Windows 2000/XP. Программные компоненты системы, работающие с реестром. Структура параметра реестра, его корневые разделы. Стандартные файлы, обеспечивающие поддержку кустов. Окно установки разрешений программы, аудит действий.

    презентация [424,1 K], добавлен 20.12.2013

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