Смекни!
smekni.com

Розробка засобами Delphi дидактичного ілюстративного матеріалу для розвязання задачі з аналітичної Створення нескладних (стр. 2 из 4)

Відклавши на осях OX, OY, OZ в позитивному напрямку відрізки OA, OB, ОС, рівні одиниці масштабу, отримаємо три вектора OA, OB, ОС. Вони називаються основними векторами і позначаються відповідно i, j, k.

Позитивні напрямки на осях прийнято вибирати так, щоб поворот на 90°, що поєднують позитивний промінь OX з променем ОУ, здавався відбувається проти годинникової стрілки, якщо спостерігати його з боку променя OZ. Така система координат називається правою. Іноді користуються і лівої системою координат. У ній згаданий поворот відбувається за годинниковою стрілкою.

Рисунок 1.1 Основні вектори

1.2.2 Координати точки

Положення будь-якої точки М в просторі можна визначити трьома координатами наступним чином. Через М проводимо площині MP, MQ, MR, відповідно паралельні площинах YOZ, ZOX, XOY. У перетині з осями отримуємо точки Р, Q, R. Числа х (абсциса), у (ордината), z (апліката), вимірюють відрізки OP, OQ, OR у вибраному масштабі, називаються (прямокутними) координатами точки М. Вони беруться позитивними або негативними, дивлячись по тому, чи мають вектори OP, OQ, OR відповідно ті ж напрямки, що й основні вектори i, j, k, або протилежні. [1]

Приклад. Координатами точки М (на рис. 1.2) є: абсциса х = 2, ордината у = -3, апліката z = 2. Запис: М (2; -3; 2). Вектор ОМ, що йде від початку координат O до деякої точці M, називається радіусом-вектором точки М і позначається літерою r, щоб відрізняти один від одного радіус-вектори різних точок, при букві r ставлять значки: так, радіус-вектор точки М позначається rm . Радіус-вектори точок А1, А2 …, An позначаються r1, r2 …rn

Рисунок 1.2 Координати точки

Прямокутними координатами вектора m називаються алгебраїчні проекції вектора m на осі координат. Координати вектора позначаються великими літерами X, У, Z (координати точки - малими).

Запис: m{Х; У; Z) або m = {X; У; Z)

Замість того, щоб проектувати вектор m на осі OX, ОУ, OZ, можна проектувати його на осі М1А, М1В, М1С (рис. 1.3), проведені через початок М1 вектора m і дорівнює направленню з осями координат.

Координати вектора не змінюються при паралельному перенесенні системи координат. Навпаки, координати точки при паралельному перенесенні системи координат змінюються. [1]

Якщо початкова точка вектора ОМ співпадає з початком координат, то координати вектора ОМ відповідно рівні координатами кінцевої його точки М.

Рисунок 1.3 Координати вектора

1.2.3 Кут між віссю координат та вектором

Кути α, β, γ (рис. 1.4), утворених позитивними напрямками OX, OY, OZ з вектором a{X;Y;Z}, можна знайти за формулами

, (1)

, (2)

, (3)

Приклад

Рисунок 1.4 Кут між віссю координат так вектором

Якщо вектор a має довжину, що дорівнює одиниці масштабу, тобто якщо |a| = 1, то

,
,
.

З формул (1), (2), (3) випливає:

(4)

Приклад: Знайти кути, утворених осями координат з вектором {2;-2;-1}.

Розв’язання.

,
,
, звідки

1.2.4 Аналітичне розв’язання

По заданому модулю вектора і заданими кутах між вектором і осями OX, OY, OZ, обчислити проекції вектора на координатні осі.

Дано:


Розв’язання:

1. За формулою

обчислюємо відповідно x, y, z

2. Отримані значення перетворимо в екранні координати

cpX, cpY – центр системи координат dp – масштаб

3. Виводимо вектор за отриманими координатами

Рисунок 1.5 Отриманий вектор

1.2.5 Математичний приклад

Дано:

Рішення:

1. За формулою

обчислюємо відповідно x, y, z

1. Виходить вектор з координатами

2. Отримані значення перетворимо в екранні координати

3. Будуємо вектор у системі координат


2. Сценарій розв’язання задачі в Delphi

2.1 Програмування в консольному режимі

2.1.1 Блок-схема алгоритму


2.1.2 Програмний код консольної програми

program Console;

{$APPTYPE CONSOLE}

uses

SysUtils,

Windows,

Forms,

Math;

var

a,b,v: real; //углы между векторами и осями

m: integer; //модуль вектора

x,y,z: integer; //координаты вектора

xe,ye: integer; //экранные координаты вектора

const

dp = 14;

cpX = 250;

cpY = 200;

//Вывод текста кириллицей на экран

procedure printf(const S: AnsiString);

var

Result: AnsiString;

begin

SetLength(Result, Length(S));

AnsiToOemBuff(@S[1], @Result[1], Length(S));

writeln(result);

end;

//Задержка

procedure Delay(ms : cardinal);

var

t1: cardinal;

begin

t1:=GetTickCount;

while (GetTickCount - t1) < ms do Application.ProcessMessages;

end;

begin

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

printf('Введите угол альфа');

readln(a);

printf('Введите угол бета');

readln(b);

printf('Введите угол гамма');

readln(v);

printf('Введите модуль вектора');

readln(m);

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

printf('Идет расчет данных...');

x:=round(cos(a*(Pi/180))*m);

y:=round(cos(b*(Pi/180))*m);

z:=round(cos(v*(Pi/180))*m);

delay(4000);

//Расчет экранных координат

xe:=cpX + (y * dp) - (x * dp div 2);

ye:=cpY + (x * dp div 2) - (z * dp);

//Вывод информации

printf(Format('Вектор с координатами: a={%d,%d,%d}',[x,y,z]));

printf(Format('Экранные координаты: Xe=%d, Ye=%d',[xe,ye]));

readln;

end.


Рисунок 2.2 Консольна програма

2.2 Компоненти та їх властивості

Створюючи цю програму я використовував багато графічних компонентів, наприклад Edit, Button, CheckBox, MainMenu, ColorBox, PageControl и TrackBar.

2.2.1 Компонент Edit

Компонент для відображення, введення та редагування однорядкових текстів. Є можливість оформлення об'ємного бордюру. Основна властивість — Text. У компоненті Edit текст, що вводиться або виводиться, міститься у властивості Text. Цю властивість можна встановлювати в процесі проектування або вказувати програмно. Вирівнювання тексту, як це має місце в позначках і панелях, неможливо. Неможливе також і перенесення рядків. Текст, який не вміщується по довжині у вікно, просто зрушується, і користувач може переміщуватися по ньому за допомогою курсору.

Таблиця 2.1 - Властивості компоненту Edit

Властивості Опис
AutoSize Автоматично налаштування під розмір тексту
Color Колір тексту
Font: TFont Вибраний шрифт тексту
Left: integer Положення компонента по горизонталі
ReadOnly: Boolean Тільки для читання
Text Введений текст
Top: integer Положення компонента по вертикалі
Visible: Boolean Показує чи видимий компонент в даний час
Width: integer Ширина форми в пікселях

2.2.2 Компонент Button

Кнопки TButton широко використовуються для управління програмами. Пов'язаний з кнопкою алгоритм управління реалізується в обробнику події OnClick. На відміну від більшості інших видимих компонентів кнопка TButton є компонентом самої Windows і тому не може змінювати свій колір довільним чином - вона його змінює разом зі зміною палітри Windows. Кнопка завжди має системний колір clBtnFace і не має властивості Color. Шрифт напису на кнопці може змінювати свій стиль і розмір, але компонент ігнорує зміну його кольору.