на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Розробка засобами Delphi дидактичного ілюстративного матеріалу для розв’язання задачі з аналітичної геометрії. Обчислення проекцій вектора на координатні осі в простор
p align="left"> if drawVector then

begin

if checkFrame.Checked then

begin

Pen.Color:=cbFrame.Selected;

Pen.Style:=psSolid;

DrawLineCustom(0, 0, 0, vectorx, 0, 0, 2);

DrawLineCustom(0, 0, 0, 0, vectory, 0, 2);

DrawLineCustom(0, 0, 0, 0, 0, vectorz, 2);

DrawLineCustom(0, vectory, 0, vectorx, vectory, 0, 1);

DrawLineCustom(vectorx, vectory, 0, vectorx, 0, 0, 1);

DrawLineCustom(vectorx, 0, vectorz, 0, 0, vectorz, 1);

DrawLineCustom(0, vectory, vectorz, 0, 0, vectorz, 1);

DrawLineCustom(0,vectory,vectorz,vectorx,vectory,vectorz, 1);

DrawLineCustom(vectorx,vectory,vectorz,vectorx,0,vectorz, 1);

DrawLineCustom(vectorx, vectory,0,vectorx,vectory,vectorz, 1);

DrawLineCustom(vectorx, 0, 0, vectorx, 0, vectorz, 1);

DrawLineCustom(0, vectory, 0, 0, vectory, vectorz, 1);

end;

Pen.Color:=cbVector.Selected;

DrawLineCustom(0, 0, 0, vectorx, vectory, vectorz, 2);

//Дуги

if drawArc then

begin

vx := round(cos(StrToInt(editA.Text)*(pi/180))*2);

vy := round(cos(StrToInt(editB.Text)*(pi/180))*2);

vz := round(cos(StrToInt(editC.Text)*(pi/180))*2);

Pen.Color:=clBlack;

DrawLineCustom(2,0,0,vx,vy,vz,2);

DrawLineCustom(0,2,0,vx,vy,vz,2);

DrawLineCustom(0,0,2,vx,vy,vz,2);

end;

end;

end;

end;

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

//Создание формы

procedure TMainForm.FormCreate(Sender: TObject);

var

ini: TIniFile;

begin

vectorx:=4;

vectory:=-5;

vectorz:=5;

dp := 14;

dph := dp div 2;

//Чтение настроек

ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'\DefSet.ini');

try

editA.Text:=IntToStr(ini.ReadInteger('DefNumbers','alpha',60));

editB.Text:=IntToStr(ini.ReadInteger('DefNumbers','beta',135));

editC.Text:=IntToStr(ini.ReadInteger('DefNumbers','gamma',45));

editM.Text:=IntToStr(ini.ReadInteger('DefNumbers','module',7));

step:=ini.ReadInteger('DrawOptions','step',2);

drawArc:=ini.ReadBool('DrawOptions','arc',false);

finally

ini.Free;

end;

end;

//Расчет данных

procedure TMainForm.butCalcClick(Sender: TObject);

var

a,b,c,m: integer;

begin

//Ввод данных

a := StrToInt(editA.Text);

b := StrToInt(editB.Text);

c := StrToInt(editC.Text);

m := StrToInt(editM.Text);

//Вычисление

vectorx := round(cos(a*(pi/180))*m);

vectory := round(cos(b*(pi/180))*m);

vectorz := round(cos(c*(pi/180))*m);

//Вывод данных

editX.Text := IntToStr(vectorx);

editY.Text := IntToStr(vectory);

editZ.Text := IntToStr(vectorz);

end;

//Перерисовка

procedure TMainForm.DrawChange(Sender: TObject);

begin

AxisPanel.Repaint;

end;

//Исходные данные

procedure TMainForm.ShowOrigData(Sender: TObject);

begin

OrigForm := TOrigForm.Create(Application);

case(Sender as TMenuItem).Tag of

1: begin

OrigForm.Caption:='Аналитическое решение';

OrigForm.Image1.Picture.LoadFromFile('Calc1.png');

end;

2: begin

OrigForm.Caption:='Математический пример';

OrigForm.Image1.Picture.LoadFromFile('Calc2.png');

end;

end;

if (OrigForm.ShowModal = mrOK) then OrigForm.Free;

end;

procedure TMainForm.tbScaleChange(Sender: TObject);

begin

dp:=tbScale.Position;

dph:=dp div 2;

AxisPanel.Repaint;

end;

//Закрытие программы

procedure TMainForm.Exit1Click(Sender: TObject);

begin

MainForm.Close;

end;

//Изменение размеров формы

procedure TMainForm.FormResize(Sender: TObject);

begin

AxisPanel.Left:=10;

AxisPanel.Top:=170;

AxisPanel.Width:=MainForm.ClientWidth-20;

AxisPanel.Height:=MainForm.ClientHeight-200;

end;

//Вызов справки

procedure TMainForm.Howtouse1Click(Sender: TObject);

begin

ShellExecute(MainForm.Handle, nil, PChar('help.chm'), nil, nil, SW_ShowNormal);

end;

//Рисовать вектор

procedure TMainForm.butDrawClick(Sender: TObject);

begin

if (vectorx >= xmin) and (vectorx <= xmax) then

if (vectory >= ymin) and (vectory <= ymax) then

if (vectorz >= zmin) and (vectorz <= zmax) then

begin

drawVector := not drawVector;

if drawVector then

butDraw.Caption:='Удалить вектор' else

butDraw.Caption:='Рисовать вектор';

end else

begin

if not drawVector then butDraw.Caption:='Рисовать вектор';

drawVector := false;

ShowMessage('Параметры вектора выходят за предел допустимых значений');

end;

AxisPanel.Repaint;

end;

//Проверка данных

procedure TMainForm.editExit(Sender: TObject);

label

error;

begin

{Значение модуля}

if (Sender as TEdit) = editM then

case StrToInt(editM.Text) of

0..20: Exit;

else GOTO error;

end else

{Значение угла}

begin

case StrToInt((Sender as TEdit).Text) of

0..180: Exit;

else GOTO error;

end;

end;

error:

Application.MessageBox('Введено неправильное значение. Значение выходит за диапазон допустимых значений','Предупреждение',0);

(Sender as TEdit).Text:='0';

end;

//Окно О программе

procedure TMainForm.miAboutClick(Sender: TObject);

begin

AboutForm.ShowModal;

end;

procedure TMainForm.N2Click(Sender: TObject);

begin

ShellExecute(MainForm.Handle, nil, PChar('console.exe'), nil, nil, SW_ShowNormal);

end;

//Сохранение картики

procedure TMainForm.butSaveClick(Sender: TObject);

var

sd: TSaveDialog;

bmp: TBitmap;

i,j: integer;

begin

sd:=TSaveDialog.Create(Application);

sd.InitialDir:='C:\';

sd.Filter:='Bitmap|*.bmp';

bmp:=TBitmap.Create;

bmp.Width:=AxisPanel.Width;

bmp.Height:=AxisPanel.Height;

if sd.Execute then

begin

AxisPanel.Repaint;

for i:=0 to bmp.Width do

for j:=0 to bmp.Height do

bmp.Canvas.Pixels[i,j]:=AxisPanel.Canvas.Pixels[i,j];

bmp.SaveToFile(sd.FileName+'.bmp');

end;

bmp.Free;

sd.Free;

end;

procedure TMainForm.checkScaleClick(Sender: TObject);

begin

if checkScale.Checked then tbScale.Visible:=true else tbScale.Visible:=false;

end;

end.

3 Опис інтерфейсу

Запуск програми здійснюється подвійним натисненням по файлу vector3d.exe. Перед користувачем з'явиться заставка у якій показуються усі основні дані про проект.

Рисунок 3.1 Заставка

Ця форма стоїть як заставка протягом трьох секунд, після чого вона зникає й з'являється головна форма програми (рис 3.2)

Рисунок 3.2 Головне вікно

1. Меню «Файл» і «Справка» створені за допомогою компоненту MainMenu

2. Також у програмі використовуються такі компоненти як StatusBar, PageControl та PaintBox.

Рисунок 3.3 Приклад роботи прогами

1. Для початку роботи з програмою необхідно перейти на вкладку Расчет, та ввести початкові данні про кути, та модуль.

2. Далі треба натиснути кнопку Расчет

3. Після чого треба перейти на вкладку Рисовать

4. На цій вкладці можна вибирати колір осей, масштаб та інші опції

5. Для виведення вектора треба натиснути кнопку Рисовать вектор

6. Якщо параметри вектора входять в діапазон допустимих значень, то вектор буде намальован (рис 3.3).

Рисунок 3.4 Аналітичне розв'язання

Якщо треба вивести на екран приклад розв'язання задачі або аналітичне рішення, то треба вибрати в меню Файл відповідний пункт.

Рисунок 3.5 Математичний приклад

Для того щоб показати інформацію про програму необхідно натиснути Справка-Визов справки (рис 3.6)

Рисунок 3.6 Информація про програму

Якщо данні були введені некоректно, то будуть з'являтись відповідні вікна з помилками (рис 3.7, рис 3.8)

Рисунок 3.7 Приклад вікна с помилкою

Рисунок 3.8 Вихід за границю дозволенних значень

Висновки

Даний курсовий проект полягає в розробці та створенні програми для розв'язання задачі з аналітичної геометрії. Поставлена на початку мета була досягнута з використанням середовища об'єктно-орієнтованого програмування Delphi. Отриманні теоретичні знання застосовані на практиці, тобто програма була розроблена відповідно до завдання, а також були зроблені додатки, які потрібні для більш зручного використання програми. Найбільш складним завданням було перетворення математичних координат в екранні координати. Об'єктно-орієнтоване середовище програмування Delphi дозволило виконати проект зручним та простим до використовування, за допомогою різноманітних графічних компонентів. Отже середовище Delphi добре підходить для розв'язання програм заснованих на математичних завданнях.

Весь проект складається з 17 файлів, сумарний об'єм яких дорівнює 4.15 Мб.

Таблиця 4.1 Розмір файлів проекту

Файли проекту

Опис

Розмір

frmAbout.dfm

форма AboutForm

32 КБ

frmAbout.pas

код класса AboutForm

1 КБ

frmMain.dfm

форма MainForm

12 КБ

frmMain.pas

код класса MainForm

11 КБ

frmOrig.dfm

форма OrigForm

850 Байт

frmOrig.pas

код класса OrigForm

551 Байт

frmSplash.dfm

форма SplashForm

156 КБ

frmSplash.pas

код класса SplashForm

386 Байт

vector3d.dpr

файл проекту

766 Байт

vector3d.dproj

файл проекту

5 КБ

vector3d.res

ресурси

5 КБ

calc1.png

малюнок 1

37 КБ

calc2.png

малюнок 2

19 КБ

console.exe

консольна програма

503 КБ

defset.ini

файл з настройками

159 Байт

help.chm

файл справки

159 КБ

vector3d.exe

виконавчий файл

1025 КБ

Список використаних джерел

1.
Хладни И. Внутренний мир Borland Delphi 2006 -- К.: Издательский дом "Вильямс", 2006. -- 480 с.

2. Гаевский А. Разработка программных приложений на Delphi 6 - М.: Киев, 2000. -- 457 с.

3. Выгодский М.Я. Справочник по высшей математике -- М.: АСТ: Астрель, 2006. -- 991 с.: ил.

4. Бондаренко, М.А. Программирование в Delphi. Харьков: б.н., 2005.

5. Ильина Т.А. Программирование на Delphi 6 -- М.: Питер, 2000. -- 318 с.

6. Шапошников И. Delphi 5 -- М.: Санкт-Петербург, 2001. -- 203 с.

7. http://ru.wikipedia.org (онлайн енциклопедія).

8. http://www.realcoding.net (онлайн довідник по Delphi).

9. http://www.delphisources.ru (онлайн довідник по Delphi).

Страницы: 1, 2, 3, 4



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.