Попадання точки в заштриховану область: Приклад 2

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

Ілюстрація графічної області

Необхідно написати програму, що дозволяє перевірити потрапляння точки з координатами в заштрихованную область, що складається з двох фрагментів.

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

popadannja_tochky_v_zashtryhovanu_oblast251

Головна форма delphi-проекту "Попадання точки в заштриховану область"

Далі переходимо до обробника події OnClick компонента Button1 («Перевірити»), і в тілі процедури Button1Click запишемо програмний код, з допомогою якого і буде здійснюватись перевірка на попадання точки в заштриховану область, а також вивід її у компоненті TChart.

procedure TForm1.Button1Click(Sender: TObject);
var
x, y, a: real;
begin
// Зберігаємо задані користувачем значення для координатів точки в змінну x та y
x := StrToFloat(Edit1.Text);
y := StrToFloat(Edit2.Text);
// Виводимо її у компоненті TChart
Series6.Clear;
Series6.AddXY(x, y, '', clRed);
// Здійснюємо провірку на попадання точки в заштриховану область
a := Sqrt(Sqr(x) + Sqr(y));
if (a <= 10) and (a >= 5) and (((y >= (-x)) and (x <= 0)) or ((x >= (-y)) and (y <= 0))) then
StatusBar1.Panels[0].Text := 'Точка (' + Edit1.Text + ', ' + Edit2.Text + ') попадає в заштриховану область'
else
StatusBar1.Panels[0].Text := 'Точка (' + Edit1.Text + ', ' + Edit2.Text + ') не попадає в заштриховану область';
end;

Після цього, на подію OnCreate головної форми проекту реалізуємо побудову вище вказаних фігу.

procedure TForm1.FormCreate(Sender: TObject);
var
x, y: real;
begin
// Побудова геометричних фігур
x := −10;
while (x <= 10) do
begin
y := Sqrt(100 — x * x);
Series1.AddXY(x, y, '', clRed);
Series2.AddXY(x, -y, '', clRed);
if (x >= −5) and (x <= 5) then
begin
y := Sqrt(25 — x * x);
Series3.AddXY(x, y, '', clRed);
Series4.AddXY(x, -y, '', clRed);
end;
Series5.AddXY(x, -x, '', clRed);
x := x + 0.001;
end;
end;

І на останньому кроці, збережемо, відкомпілюємо та запустимо delphi-проект на виконання. Далі, у вікні що появиться, способом введення з клавіатури, задамо для компонентів Edit1 та Edit2 відповідні значення (координати точки) та скористаємось копкою «Перевірити». Відмітимо, що результатом виконання даного кроку є вивід в нижній частині форми повідомлення про те, чи попадає точка з такими координатами у заштриховану область чи ні.

popadannja_tochky_v_zashtryhovanu_oblast261

Визначення попадання точка з координатами (-3, 5) в заштріховану область

Скачати delphi-проект Попадання точки в заштриховану область.

Матеріал був корисним, поділись в соціальних мережах:

Якщо тобі сподобалась дана тема, залиш свій коментар