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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    60,9 Кб
  • Опубликовано:
    2016-02-15
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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















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

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

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

СОДЕРЖАНИЕ

Введение

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

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

Заключение

Литература

Приложение А

Приложение Б

Введение

- лучшая среда для разработчиков программного обеспечения и баз данных, которая позволяет быстро разрабатывать высокопроизводительные и простые в обслуживании приложения для 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 можно изменить, но не непосредственно, а только программно

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

BitButton - Командная кнопка. Отличается от стандартной кнопки Button возможностью отображения пиктограммыподдерживает три типа файлов - битовые матрицы, пиктограммы и метафайлы. Все три типа файлов хранят изображения; различие заключается лишь в способе их хранения внутри файлов и в средствах доступа к ним. Битовая матрица (файл с расширением .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.

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

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

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

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

{$R *.DFM}=8;=4;=6;= record, Y, Z : double;: array[1..3] of byte;, Ye : Integer;;= array[1..mCub] of TMain;= array[1..mOkt] of TMain;= array[1..mTetr] of TMain;=15;=r*0.8660254;=r*0.5;: 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))

);: 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))

);: 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)),

);

Var

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

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

//---------------------------------------------------------------------XYZ(X,Y,Z : double; Var X2,Y2 : integer);:=Round(X*Fok/100+(Form1.PaintBox.Width div 2));:=Round(Y*Fok/100+(Form1.PaintBox.Height div 2));;

//---------------------------------------------------------------------Pw(var X,Y : double; Al : double);, Y2 : double;, cosa : double;Al=0 then Exit;:=sin(Al); cosa:=cos(Al);:=(X*Cosa-Y*Sina);:=(X*Sina+Y*Cosa);:=X2; Y:=Y2;;

//---------------------------------------------------------------------TForm1.PaintBox_onPaint(Sender: TObject);i,j,c : integer;:TCub;:TOkt;:TTetr;

//--------------------------------------------------rbCub.Checked then Begin:=Cub;i:=1 to mCub do begin(qCub[i].X, qCub[i].Y, dxy);(qCub[i].X, qCub[i].Z, dxz);(qCub[i].Y, qCub[i].Z, dyz);(qCub[i].X, qCub[i].Y, qCub[i].Z, qCub[i].Xe, qCub[i].Ye);;i:=1 to mCub doj:=1 to 3 doqCub[i].Sd[J]<>0 then begin:=qCub[i].Sd[j];PaintBox.Canvas do begin(qCub[i].Xe, qCub[i].Ye);(qCub[c].Xe, qCub[c].Ye);;;;

//---------------------------------------rbTetraedr.Checked then Begin:=Tetr;i:=1 to mTetr do begin(qTetr[i].X, qTetr[i].Y, dxy);(qTetr[i].X, qTetr[i].Z, dxz);(qTetr[i].Y, qTetr[i].Z, dyz);(qTetr[i].X, qTetr[i].Y, qTetr[i].Z, qTetr[i].Xe, qTetr[i].Ye);;i:=1 to mTetr doj:=1 to 3 doqTetr[i].Sd[J]<>0 then begin:=qTetr[i].Sd[j];PaintBox.Canvas do begin(qTetr[i].Xe, qTetr[i].Ye);(qTetr[c].Xe, qTetr[c].Ye);;;;

//--------------------------------------rbOktaedr.Checked then Begin:=Okt;i:=1 to mOkt do begin(qOkt[i].X, qOkt[i].Y, dxy);(qOkt[i].X, qOkt[i].Z, dxz);(qOkt[i].Y, qOkt[i].Z, dyz);(qOkt[i].X, qOkt[i].Y, qOkt[i].Z, qOkt[i].Xe, qOkt[i].Ye);;i:=1 to mOkt doj:=1 to 3 doqOkt[i].Sd[J]<>0 then begin:=qOkt[i].Sd[j];PaintBox.Canvas do begin(qOkt[i].Xe, qOkt[i].Ye);(qOkt[c].Xe, qOkt[c].Ye);;;;

//----------------------------------------;

//---------------------------------------------------------------------TForm1.TimerTimer(Sender: TObject);N:real=0.03;RotateXYt then dxy:=dxy+N;RotateXZt then dxz:=dxz+N;RotateYZt then dyz:=dyz+N;RotateXYf then dxy:=dxy-N;RotateXZf then dxz:=dxz-N;RotateYZf then dyz:=dyz-N;(RotateXYt or RotateXYf or RotateXZt or RotateXZf or RotateYZt or RotateYZf) then PaintBox.Repaint;;

//---------------------------------------------------------------------TForm1.sbtRotate_onMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);Sender=sbtRotateXYt then RotateXYt:=true;Sender=sbtRotateXYf then RotateXYf:=true;Sender=sbtRotateXZt then RotateXZt:=true;Sender=sbtRotateXZf then RotateXZf:=true;Sender=sbtRotateYZt then RotateYZt:=true;Sender=sbtRotateYZf then RotateYZf:=true;;

//---------------------------------------------------------------------TForm1.sbtRotate_onMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);Sender=sbtRotateXYt then RotateXYt:=false;Sender=sbtRotateXYf then RotateXYf:=false;Sender=sbtRotateXZt then RotateXZt:=false;Sender=sbtRotateXZf then RotateXZf:=false;Sender=sbtRotateYZt then RotateYZt:=false;Sender=sbtRotateYZf then RotateYZf:=false;;

//---------------------------------------------------------------------TForm1.Form_onCreate(Sender: TObject);:=0.3; dyz:=0.3; dxz:=0.3;:=false;:=false;:=false;:=false;:=false;:=false;;

//---------------------------------------------------------------------TForm1.RadioButtons_onClick(Sender: TObject);.Repaint;;

//---------------------------------------------------------------------TForm1.Form_onResize(Sender: TObject);:=Round((Width+Height)*0.8);;

//---------------------------------------------------------------------.

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



Похожие работы на - Математическое моделирование 3D

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!