Графічний відображення точки на комплексному кресленні.

Розглянемо наступний рисунок.

На ньому зображено графік функції y = x^3 – 3*x^2. Розглянемо деякий інтервал, що містить точку х = 0, наприклад від -1 до 1. Такий інтервал ще називають околицею точки х = 0. Як видно на графіку, у цьому околиці функція y = x^3 – 3*x^2 приймає найбільше значеннясаме у точці х = 0.

Максимум та мінімум функції

У такому разі точку х = 0 називають точкою максимуму функції. За аналогією з цим точку х = 2 називають точкою мінімуму функції y = x^3 – 3*x^2. Тому що існує така околиця цієї точки, в якій значення в цій точці буде мінімальним серед усіх інших значень цієї околиці.

Крапкою максимумуфункції f(x) називається точка x0, за умови, що існує околиця точки х0 така, що для всіх х не рівних х0 із цієї околиці, виконується нерівність f(x)< f(x0).

Крапкою мінімумуфункції f(x) називається точка x0, за умови, що існує околиця точки х0 така, що для всіх х не рівних х0 з цієї околиці, виконується нерівність f(x) > f(x0).

У точках максимуму та мінімуму функцій значення похідної функції дорівнює нулю. Але це недостатнє умова існування у точці максимуму чи мінімуму функції.

Наприклад, функція y = x^3 у точці х = 0 має похідну рівну нулю. Але точка х = 0 не є точкою мінімуму чи максимуму функції. Як відомо, функція y = x^3 зростає на всій числовій осі.

Таким чином, точки мінімуму і максимуму завжди будуть серед корені рівняння f'(x) = 0. Але не всі корені цього рівняння будуть точками максимуму або мінімуму.

Стаціонарні та критичні точки

Крапки, у яких значення похідної функції дорівнює нулю, називаються стаціонарними точками. Точки максимуму чи мінімуму можуть бути і вточках, у яких похідної функції немає. Наприклад, у = | x | у точці х = 0 має мінімум, але похідної у цій точці не існує. Ця точка буде критичною точкою функції.

Критичними точками функції називаються точки, у яких похідна дорівнює нулю, або похідної у цій точці немає, тобто функція у цій точці недиференційована. Щоб знайти максимум або мінімум функції необхідно виконання достатньої умови.

Нехай f(x) деяка функція, що диференціюється на інтервалі (a;b). Точка х0 належить до цього інтервалу і f'(x0) = 0. Тоді:

1. якщо під час переходу через стаціонарну точку х0 функція f(x) та її похідна змінює знак, з «плюсу» на «мінус», тоді точка х0 є точкою максимуму функції.

2. якщо під час переходу через стаціонарну точку х0 функція f(x) та її похідна змінює знак, з «мінуса» на «плюс», тоді точка х0 є точкою мінімуму функції.

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

Спочатку трохи спогадів
Було це під час перебування мою студентом одного з технічних ВНЗ у 90-ті, курсі напевно другому. Потрапив я якось на олімпіаду з програмування. І ось на цій самій олімпіаді і було завдання: задати координати трикутника, тестової точки на площині, і визначити, чи належить ця точка області трикутника. Загалом, плева задача, але тоді я її так і не вирішив. Але потім замислився над більш загальним завданням приналежність полігону. Повторюся - була середина 90-х, інтернету не було, книжок з комп'ютерної геометрії не було, а були лекції з вежі та лабораторія 286-х з турбо паскалем. І ось так збіглися зірки, що якраз коли я розмірковував над проблемою, на вежі нам читали теорію комплексного змінного. І одна формула (про неї нижче) впала на благодатний ґрунт. Алгоритм був придуманий і реалізований на паскалі (на жаль, мій півтора гіговий гвинт загинув і забрав у небуття цей код і купу інших моїх юнацьких напрацювань). Після інституту я потрапив працювати до одного НДІ. Там мені довелося займатися розробкою ГІС для потреб працівників інституту і власним одним із завдань було визначення попадання об'єктів у контур. Алгоритм було переписано на С++ і добре зарекомендував себе у роботі.

Завдання для алгоритму

Дано:
Г- замкнута ламана (далі полігон) на площині, задана координатами своїх вершин (xi, yi), та координата тестової точки (x0, y0)
Визначити:
чи належить точка області D, обмеженою полігоном.

Висновок формул для подальшого написання алгоритму в жодному разі не претендує на математичну повноту і точність, лише демонструє інженерний (споживчий підхід) до Цариці полів наук.

Пояснення з робітничо-селянської інженерної точки зору:
- межа Г наш заданий контур,
- z0 -тестована точка
- f(z) - комплексна функціявід комплексного аргументу ніде у контурі не звертається до нескінченності.

Тобто, щоб встановити належність точки контуру, нам необхідно обчислити інтеграл і порівняти його зі значенням функції цієї точки. Якщо вони збігаються, то крапка лежить у контурі. Зауваження: інтегральна теорема коші свідчить, що якщо точка не лежить у контурі, то підінтегральний вираз ніде не звертається в нескінченність, то інтеграл дорівнює нулю. Це спрощує справу - треба лише обчислити інтеграл і перевірити його на рівність нулю: дорівнює нулю точка не контуру, відмінний - лежить у контурі.
Займемося обчисленням інтегралу. За f(z) приймемо просту функцію 1. Не порушуючи спільності, можна за z0 прийняти точку 0 (завжди можна зрушити координати).

Позбавляємося уявної одиниці в знаменнику підінтегральної частини і розщепимо інтеграл на дійсну і уявну частини:

Вийшло два криволінійні інтеграли ІІ роду.
Обчислимо перший

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

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

Де Гi - це відрізок (xi, yi) - (xi +1, y i +1)
Обчислимо перший інтеграл. Для цього запишемо рівняння i-го відрізка у параметричному вигляді

Підставимо в інтеграл

І після громіздких і нудних перетворень отримаємо наступну принадну формулу:

Остаточно отримуємо

Алгоритм C++:

template <class T>
bool pt_in_polygon( const T &test,const std::vector &polygon)
{
if (polygon.size()<3) return false;

Std::vector::const_iterator end=polygon.end();

T last_pt=polygon.back();

Last_pt.x-=test.x;
last_pt.y-=test.y;

double sum = 0.0;

for(
std::vector::const_iterator iter=polygon.begin();
iter!=end;
++iter
{
T cur_pt = * iter;
cur_pt.x-=test.x;
cur_pt.y-=test.y;

double del= last_pt.x*cur_pt.y-cur_pt.x*last_pt.y;
double xy=cur_pt.x*last_pt.x+cur_pt.y*last_pt.y;

Sum+=
atan((last_pt.x*last_pt.x+last_pt.y*last_pt.y - xy)/del)+
atan((cur_pt.x*cur_pt.x+cur_pt.y*cur_pt.y-xy)/del)
);

Last_pt=cur_pt;

return fabs(sum)>eps;

T – тип точки, наприклад:
struct PointD
{
double x,y;
};

Управління:
клік лівою кнопкою – додавання нової точки контуру
правою кнопкою - замикання контуру
лівий із затиснутим Shift-ом – перенесення тестової точки

Панове, кому цікаво, наводжу швидший алгоритм. Вже не мій.
Окреме та величезне спасибі за статейку.
template bool pt_in_polygon2(const T&test,const std::vector &polygon)
{

Static const int q_patt = ((0,1), (3,2));

If (polygon.size()<3) return false;

Std::vector::const_iterator end=polygon.end();
T pred_pt=polygon.back();
pred_pt.x-=test.x;
pred_pt.y-=test.y;

Int pred_q=q_patt;

For(std::vector::const_iterator iter=polygon.begin();iter!=end;++iter)
{
T cur_pt = * iter;

Cur_pt.x-=test.x;
cur_pt.y-=test.y;

Int q=q_patt;

Switch (q-pred_q)
{
case -3:++w;break;
case 3:--w;break;
case -2:if(pred_pt.x*cur_pt.y>=pred_pt.y*cur_pt.x) ++w;break;
case 2:if(!(pred_pt.x*cur_pt.y>=pred_pt.y*cur_pt.x)) --w;break;
}

Pred_pt = cur_pt;
pred_q = q;

У двомірному просторі дві прямі перетинаються тільки в одній точці, що задається координатами (х, y). Так як обидві прямі проходять через точку їх перетину, то координати (х, y) повинні задовольняти обидва рівняння, які описують ці прямі. Скориставшись деякими додатковими навичками, ви зможете знаходити точки перетину парабол та інших квадратичних кривих.

Кроки

Крапка перетину двох прямих

    Запишіть рівняння кожної прямої, відокремивши змінну у на лівій стороні рівняння.Інші члени рівняння повинні розміщуватися на правій сторонірівняння. Можливо, дане рівняння замість «у» міститиме змінну f(x) або g(x); у цьому випадку відокремте таку змінну. Для відокремлення змінної виконайте відповідні математичні операціїна обох сторонах рівняння.

    • Якщо рівняння прямих вам не дано, на основі відомої вам інформації.
    • Приклад. Дані прямі, що описуються рівняннями та y − 12 = − 2 x (\displaystyle y-12=-2x). Щоб у другому рівнянні відокремити «у», додайте до обох сторін рівняння число 12:
  1. Ви шукаєте точку перетину обох прямих, тобто точку, координати (х, у) якої задовольняють обох рівнянь. Так як на лівому боці кожного рівняння знаходиться змінна «у», то вирази, розташовані з правого боку кожного рівняння, можна прирівняти. Запишіть нове рівняння.

    • Приклад. Так як y = x + 3 (\displaystyle y=x+3)і y = 12 − 2 x (\displaystyle y=12-2x), можна записати таку рівність: .
  2. Знайдіть значення змінної "х".Нове рівняння містить лише одну змінну "х". Для знаходження "х" відокремте цю змінну на лівій стороні рівняння, виконавши відповідні математичні операції на обох сторонах рівняння. Ви повинні отримати рівняння х = __ (якщо ви не можете це зробити, цього розділу).

    • Приклад. x + 3 = 12 − 2 x (\displaystyle x+3=12-2x)
    • Додати 2 x (\displaystyle 2x)до кожної сторони рівняння:
    • 3 x + 3 = 12 (\displaystyle 3x+3=12)
    • Відніміть 3 з кожної сторони рівняння:
    • 3 x = 9 (\displaystyle 3x=9)
    • Розділіть кожну сторону рівняння на 3:
    • x = 3 (\displaystyle x=3).
  3. Використовуйте знайдене значення змінної "х" для обчислення значення змінної "у".Для цього підставте знайдене значення «х» у рівняння (будь-яке) пряме.

    • Приклад. x = 3 (\displaystyle x=3)і y = x + 3 (\displaystyle y=x+3)
    • y = 3 + 3 (\displaystyle y=3+3)
    • y = 6 (\displaystyle y=6)
  4. Перевірте відповідь.Для цього підставте значення "х" в інше рівняння прямої і знайдіть значення "у". Якщо ви отримаєте різні значення"у", перевірте правильність ваших обчислень.

    • Приклад: x = 3 (\displaystyle x=3)і y = 12 − 2 x (\displaystyle y=12-2x)
    • y = 12 − 2 (3) (\displaystyle y=12-2(3))
    • y = 12 − 6 (\displaystyle y=12-6)
    • y = 6 (\displaystyle y=6)
    • Ви отримали таке ж значення "у", тому у ваших обчисленнях помилок немає.
  5. Запишіть координати (х, у).Обчисливши значення "х" та "у", ви знайшли координати точки перетину двох прямих. Запишіть координати точки перетину як (х,у).

    • Приклад. x = 3 (\displaystyle x=3)і y = 6 (\displaystyle y=6)
    • Таким чином, дві прямі перетинаються у точці з координатами (3,6).
  6. Обчислення в окремих випадках.У деяких випадках значення змінної «х» не можна знайти. Але це не означає, що ви припустилися помилки. Особливий випадок має місце при виконанні однієї з наступних умов:

    • Якщо дві прямі паралельні, вони не перетинаються. При цьому змінна «х» просто скоротиться, а ваше рівняння перетвориться на безглузду рівність (наприклад, 0 = 1 (\displaystyle 0=1)). В цьому випадку у відповіді запишіть, що прямі не перетинаються або рішення немає.
    • Якщо обидва рівняння описують одну пряму, точок перетину буде безліч. При цьому змінна «х» просто скоротиться, а ваше рівняння перетвориться на сувору рівність (наприклад, 3 = 3 (\displaystyle 3=3)). І тут у відповіді запишіть, що дві прямі збігаються.

    Завдання з квадратичними функціями

    1. Визначення квадратичної функції.У квадратичній функції одна або кілька змінних мають другий ступінь (але не вище), наприклад, x 2 (\displaystyle x^(2))або y 2 (\displaystyle y^(2)). Графіки квадратичних функцій є криві, які можуть не перетинатися або перетинатися в одній або двох точках. У цьому розділі ми розповімо вам, як знайти точку чи точки перетину квадратичних кривих.

    2. Перепишіть кожне рівняння, відокремивши змінну у на лівій стороні рівняння.Інші члени рівняння повинні розміщуватись на правій стороні рівняння.

      • Приклад. Знайдіть точку (точки) перетину графіків x 2 + 2 x − y = − 1 (\displaystyle x^(2)+2x-y=-1)і
      • Відокремте змінну «у» на лівому боці рівняння:
      • і y = x + 7 (\displaystyle y=x+7) .
      • У цьому прикладі вам дана одна квадратична функція та одна лінійна функція. Пам'ятайте, що якщо вам дано дві квадратичні функції, обчислення аналогічні крокам, викладеним далі.
    3. Прирівняйте вирази, розташовані праворуч кожного рівняння.Так як на лівому боці кожного рівняння знаходиться змінна «у», то вирази, розташовані з правого боку кожного рівняння, можна прирівняти.

      • Приклад. y = x 2 + 2 x + 1 (\displaystyle y=x^(2)+2x+1)і y = x + 7 (\displaystyle y=x+7)
    4. Перенесіть усі члени отриманого рівняння на його ліву сторону, а на правій стороні запишіть 0.Для цього виконайте базові математичні операції. Це дозволить вам вирішити отримане рівняння.

      • Приклад. x 2 + 2 x + 1 = x + 7 (\displaystyle x^(2)+2x+1=x+7)
      • Відніміть «x» з обох сторін рівняння:
      • x 2 + x + 1 = 7 (\displaystyle x^(2)+x+1=7)
      • Відніміть 7 з обох сторін рівняння:
    5. Вирішіть квадратне рівняння. Перенісши всі члени рівняння з його ліву сторону, ви отримали квадратне рівняння. Його можна вирішити трьома способами: за допомогою спеціальної формули і .

      • Приклад. x 2 + x − 6 = 0 (\displaystyle x^(2)+x-6=0)
      • При розкладанні рівняння на множники ви отримаєте два двочлени, при перемноженні яких виходить вихідне рівняння. У нашому прикладі перший член x 2 (\displaystyle x^(2))можна розкласти на х * х. Зробіть наступний запис: (x) (x) = 0
      • У нашому прикладі вільний член -6 можна розкласти на такі множники: − 6 ∗ 1 (\displaystyle -6*1), − 3 ∗ 2 (\displaystyle -3*2), − 2 ∗ 3 (\displaystyle -2*3), − 1 ∗ 6 (\displaystyle -1*6).
      • У прикладі другий член – це х (або 1x). Складіть кожну пару множників вільного члена (у нашому прикладі -6), поки не отримаєте 1. У прикладі підходящою парою множників вільного члена є числа -2 і 3 ( − 2 ∗ 3 = − 6 (\displaystyle -2*3=-6)), так як − 2 + 3 = 1 (\displaystyle -2+3=1).
      • Заповніть прогалини знайденої парою чисел: .
    6. Не забудьте про другу точку перетину двох графіків.Якщо ви вирішуєте завдання швидко і не дуже уважно, ви можете забути про другу точку перетину. Ось як знайти координати «х» двох точок перетину:

      • Приклад (розкладання на множники). Якщо у рівнянні (x − 2) (x + 3) = 0 (\displaystyle (x-2)(x+3)=0)один з виразів у дужках дорівнюватиме 0, то все рівняння дорівнюватиме 0. Тому можна записати так: x − 2 = 0 (\displaystyle x-2=0)x = 2 (\displaystyle x=2) і x + 3 = 0 (\displaystyle x+3=0)x = − 3 (\displaystyle x=-3) (тобто ви знайшли два корені рівняння).
      • Приклад (використання формули або доповнення до повного квадрата). При використанні одного з цих методів у процесі вирішення з'явиться квадратний корінь. Наприклад, рівняння з нашого прикладу набуде вигляду x = (− 1 + 25) / 2 (\displaystyle x=(-1+(\sqrt (25)))/2). Пам'ятайте, що при одержанні квадратного кореня ви отримаєте два рішення. У нашому випадку: 25 = 5 ∗ 5 (\displaystyle (\sqrt (25))=5*5), і 25 = (−5) ∗ (−5) (\displaystyle (\sqrt (25))=(-5)*(-5)). Тому запишіть два рівняння та знайдіть два значення «х».
    7. Графіки перетинаються в одній точці або взагалі не перетинаються.Такі ситуації мають місце за дотриманням таких умов:

      • Якщо графіки перетинаються в одній точці, квадратне рівняння розкладається на однакові множники, наприклад, (х-1) (х-1) = 0, а у формулі з'являється квадратний корінь з 0 ( 0 (\displaystyle (\sqrt (0)))). І тут рівняння має лише одне рішення.
      • Якщо графіки взагалі не перетинаються, то рівняння на множники не розкладається, а у формулі з'являється квадратний корінь із негативного числа (наприклад, − 2 (\displaystyle (\sqrt (-2)))). І тут у відповіді напишіть, що рішення немає.
Ця друга частина моєї статті присвячена обчислювальній геометрії. Думаю, ця стаття буде цікавішою за попередню, оскільки завдання будуть трохи складнішими.

Почнемо з взаємного розташуванняточки щодо прямої, променя та відрізка.

Завдання №1
Визначити взаємне розташування точки і прямої: лежить вище за пряму, на пряму, під пряму.

Рішення
Зрозуміло, якщо пряма задана своїм рівнянням ax + by + c = 0, то тут і вирішувати нічого. Достатньо підставити координати точки в рівняння прямої і перевірити, чому воно дорівнює. Якщо більше нуля, то точка знаходиться у верхній півплощині, якщо дорівнює нулю, то точка знаходиться на прямій і якщо менше нуля, то точка знаходиться у нижній півплощині. Цікавішим є випадок, коли пряма задана, задана координатами двох точок назвемо їх P 1 (x 1 , y 1), P 2 (x 2 , y 2). В цьому випадку можна спокійно знайти коефіцієнти a, b і c і застосувати попереднє міркування. Але треба спершу подумати, воно нам треба? Звичайно, ні! Як я говорив косо твори - це просто перлина обчислювальної геометрії. Давайте застосуємо його. Відомо, що косий добуток двох векторів позитивно, якщо поворот від першого вектора до другого йде проти годинникової стрілки, дорівнює нулю, якщо вектори колінеарні і негативно, якщо поворот йде за годинниковою стрілкою. Тому нам достатньо порахувати косо твір векторів P 1 P 2 і P 1 M і за його знаком зробити висновок.

Завдання №2
Визначити чи належить точка променю.

Рішення
Згадаймо, що таке промінь: промінь - це пряма, обмежена точкою з одного боку, а з іншого боку - нескінченна. Тобто промінь задається деякою початковою точкою і будь-якою точкою, що лежить на ньому. Нехай точка P 1 (x 1 , y 1) - початок променя, а P 2 (x 2 , y 2) - будь-яка точка, що належить променю. Зрозуміло, що й точка належить променю, вона належить і прямої проходить через ці точки, але з навпаки. Тому належність прямої є необхідною, але не достатньою умовою для власності променю. Тому від перевірки косового твору нам нікуди не подітися. Для достатньої умови потрібно вирахувати ще й скалярне твір тих самих векторів. Якщо воно менше нуля, то точка не належить променю, якщо воно не негативне, то точка лежить на промені. Чому так? Погляньмо на малюнок.

Отже, для того щоб точка M(x, y) лежала на промені з початковою точкою P 1 (x 1 , y 1), де P 2 (x 2 , y 2) лежить на промені необхідно і достатньо виконання двох умов:

2. (P 1 P 2 , P 1 M) ≥ 0 – скалярний добуток (точка лежить на промені)

Завдання №3
Визначити чи належить точка відрізка.

Рішення
Нехай точки P 1 (x 1 y 1), P 2 (x 2 y 2) кінці заданого відрізка. Знову ж таки необхідною умовоюприналежності точки відрізку є її приналежність прямої, що проходить через P 1 , P 2 . Далі нам потрібно визначити, чи лежить точка між точками P 1 і P 2 , для цього нам на допомогу приходить скалярний добуток векторів тільки цього разу інших: (MP 1 , MP 2). Якщо воно менше або дорівнює нулю, то точка лежить на відрізку, інакше поза відрізком. Чому так? Подивимося на рисунок.

Отже, для того щоб точка M(x, y) лежала на відрізку з кінцями P 1 (x 1 , y 1), P 2 (x 2 , y 2) необхідно і достатньо виконання умов:
1. = 0 - косий твір (точка лежить на прямій)
2. (MP 1 ,MP 2) ≤ 0 – скалярне твір (точка лежить між P 1 та P 2)

Завдання №4
Взаємне розташування двох точок щодо прямої.

Рішення
У цьому задачі необхідно визначити по одну або по різні боки щодо прямої дві точки.

Якщо точки знаходяться по різні боки щодо прямої, то косі твори мають різні знаки, отже їх твір негативно. Якщо ж точки лежать з одного боку щодо прямої, то знаки косих творів збігаються, отже, їхній твір позитивний.
Отже:
1. * < 0 – точки лежат по разные стороны.
2. * > 0 – точки лежать з одного боку.
3. * = 0 - одна (або дві) з точок лежить на прямій.

До речі, завдання про визначення наявності точки перетину у прямої і відрізка вирішується так само. Точніше, це і є те саме завдання: відрізок і пряма перетинаються, коли кінці відрізка знаходяться по різні боки щодо прямої або коли кінці відрізка лежать на прямій, тобто необхідно вимагати * ≤ 0.

Завдання №5
Визначити чи перетинаються дві прямі.

Рішення
Вважатимемо, що прямі не збігаються. Зрозуміло, що прямі не перетинаються, якщо вони паралельні. Тому, знайшовши умову паралельності, ми можемо визначити, чи перетинаються прямі.
Допустимо прямі задані своїми рівняннями a 1 x + b 1 y + c 1 = 0 і a 2 x + b 2 y + c 2 = 0. Тоді умова паралельності прямих полягає в тому, що a 1 b 2 - a 2 b 1 = 0.
Якщо ж прямі задані точками P 1 (x 1 , y 1), P 2 (x 2 , y 2), M 1 (x 3 , y 3), M 2 (x 4 , y 4), то умова їхньої паралельності полягає перевірки косого добутку векторів P 1 P 2 і M 1 M 2: якщо воно дорівнює нулю, то прямі паралельні.

Загалом, коли прямі задані своїми рівняннями ми теж перевіряємо косо твір векторів (-b 1 , a 1), (-b 2 , a 2) які називаються напрямними векторами.

Завдання №6
Визначити чи перетинаються два відрізки.

Рішення
Ось це завдання мені справді подобається. Відрізки перетинаються тоді, коли кінці кожного відрізка лежать по різні боки від іншого відрізка. Подивимося на малюнок:

Отже, нам потрібно перевірити, щоб кінці кожного з відрізків лежали по різні боки відносного кінця іншого відрізка. Користуємося косим твором векторів. Подивіться перший малюнок: > 0,< 0 => * < 0. Аналогично
* < 0. Вы наверно думаете, почему не меньше либо равно. А потому, что возможен следующий случай, при котором векторное произведение как раз и равно нулю, но отрезки не пересекаются:

Тому нам необхідно зробити ще одну перевірку, а саме: чи належить хоча б один кінець кожного відрізка до іншого (належність точки відрізка). Це завдання ми вже вирішували.

Отже, для того щоб відрізки мали спільні точки, необхідно і достатньо:
1. Кінці відрізків лежать з різних боків щодо іншого відрізка.
2. Хоча один із кінців одного відрізка належить іншому відрізку.

Завдання №7
Відстань від точки до прямої.

Рішення
Нехай пряма задана двома точками P 1 (x 1 y 1) і P 2 (x 2 y 2).

У попередній статті ми говорили, що геометрично косий твір - це орієнтована площа паралелограма, тому S P 1 P 2 M = 0,5*. З іншого боку, кожному школяру відома формула для знаходження площі трикутника: половина основи на висоту.
S P 1 P 2 M = 0,5 * h * P 1 P 2 .
Прирівнюючи ці площі, знаходимо

За модулем взяли тому, що перша площа орієнтована.

Якщо ж пряма задана рівнянням ax + by + c = 0, то рівняння прямої перпендикулярної, що проходить через точку M, заданою прямою є: a(y - y 0) – b(x - x 0) = 0. Тепер спокійно можна вирішити систему з отриманих рівнянь, знайти їх точку перетину та обчислити відстань від вихідної точки до знайденої: вона буде рівно ρ = (ax 0 + by 0 + c)/√(a 2 + b 2).

Завдання №8
Відстань від точки до променя.

Рішення
Це завдання відрізняється від попереднього тим, що в цьому випадку може вийти, так що перпендикуляр з точки не падає на промінь, а падає на його продовження.

У випадку, коли перпендикуляр не падає на промінь, необхідно знайти відстань від точки до початку променя – це буде відповіддю на завдання.

Як визначити падає перпендикуляр на промінь чи ні? Якщо перпендикуляр не падає на промінь, то кут MP 1 P 2 – тупий або гострий (прямий). Тому за знаком скалярного твору векторів ми можемо визначити чи потрапляє перпендикуляр на промінь чи ні:
1. (P 1 M, P 1 P 2)< 0 перпендикуляр не попадает на луч
2. (P 1 M, P 1 P 2) ≥ 0 перпендикуляр потрапляє на промінь

Завдання №9
Відстань від точки до відрізка.

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

Щоб визначити, чи потрапляє перпендикуляр на відрізок, потрібно за аналогією з попереднім завданням використовувати скалярний твір векторів. Якщо перпендикуляр не падає на відрізок, або кут MP 1 P 2 або кут MP 2 P 1 будуть тупими. Тому за знаком скалярних творівми можемо визначити чи потрапляє перпендикуляр на відрізок чи ні:
Якщо (P 1 M, P 1 P 2)< 0 или (P 2 M, P 2 P 1) < 0 то перпендикуляр не падает на отрезок.

Завдання №10
Визначити кількість точок прямої та кола.

Рішення
Пряме і коло може мати нуль, одну або дві точки перетину. Давайте подивимося на малюнки:

Тут із малюнків і так все зрозуміло. Ми маємо дві точки перетину, якщо відстань від центру кола до прямої менша за радіус кола. Одну точку торкання, якщо відстань від центру до прямої дорівнює радіусу. І нарешті, жодної точки перетину, якщо відстань від центру кола до прямої більша за радіус кола. Оскільки завдання знаходження відстань від точки до прямої було вже нами вирішено, те й завдання теж вирішено.

Завдання №11
Взаємне розташування двох кіл.

Рішення
Можливі випадки розташування кіл: перетинаються, стосуються, не перетинаються.

Розглянемо випадок, коли кола перетинаються, і знайдемо площу їхнього перетину. Це завдання я дуже люблю, тому що витратив на її вирішення неабияку кількість часу (було це давно – на першому курсі).




Згадаймо тепер, що таке сектор та сегмент.

Перетин кіл складається з двох сегментів O 1 AB і O 2 AB.

Здавалося б, необхідно скласти площі цих сегментів і все. Проте все не так просто. Необхідно ще визначити, чи завжди ці формули є вірними. Виявляється, ні!

Розглянемо випадок, коли центр другого кола O 2 збігається з точкою C. У цьому випадку d 2 = 0 і значення α приймемо α = π. У цьому випадку маємо півколо з площею 1/2 πR 2 2 .

Тепер розглянемо випадок, коли центр другого кола O2 знаходиться між точками O1 і C. У цьому випадку отримаємо негативне значення величини d2. Використання негативного значення d 2 призводить до негативному значеннюα. У цьому випадку необхідно для правильної відповіді додати α 2π.

Висновок
Ну от і все. Ми розглянули не всі, але завдання, що найчастіше зустрічаються, обчислювальної геометрії, що стосуються взаємного розташування об'єктів.

Сподіваюсь вам сподобалось.

Для вирішення задачі розділимо її на наступні етапи:

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

Розгляд завдання з боку багатовимірного простору

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

Розгляд завдання з боку двовимірного простору

У двомірному просторі (площина) не паралельність двох прямих означає, що вони обов'язково мають одну і лише одну точку перетину. За умовою прямі не проходять через одну (загальну) точку перетину, отже, оскільки прямі попарно не паралельні, кожна з них обов'язково перетинає ті, що залишилися.

Розрахунок кількості точок перетину

При додаванні на площину нової не паралельної прямої додаватимуться точки перетину з тими прямими, які вже нанесені на площині. Отже, дві прямі дають 1 точку перетину. Додаючи третю пряму, ми отримуємо ще 2 точки перетину з нанесеними вже двома прямими; додаючи четверту пряму, отримуємо ще 3 точки перетину; п'яту – ще 4 точки перетину. Таким чином, всього отримуємо:

1 + 2 + 3 + 4 = 10 точок перетину

Відповідь: 1) багатовимірний простір – 0 точок перетину; 2) двомірний простір – 10 точок перетину.

Дві прямі мають одну точку перетину. Додавши до них ще одну пряму, ми отримаємо ще 2 точки перетину з кожною з цих двох прямих. Додавши ще одну пряму, вона дасть додатково стільки точок перетину, скільки було прямих, тобто. ще 3. І так далі. Кожна n-а пряма дає додатково (n-1) точок перетину з (n-1) прямими.

1 + 2 + 3 + 4 = 10

Все вищесказане справедливо якщо жодна з будь-яких трьох прямих не має одну загальну точку перетину.

Якщо ж все-таки прямі можуть перетинатися в одній точці, але не все відразу, то тоді розташувавши 4 прямі зіркою ми маємо 1 їх точку перетину, і, додавши 5 пряму отримаємо ще 4 точки. У цьому випадку 5 прямих буде 5 загальних точок перетину.

Відповідь: 10 точок перетину буде утворено 5 не паралельними прямими, коли понад 2 прямі не перетинаються в одній точці. Або 5 точок перетину якщо більше двох прямих може перетинатися в одній точці.

Loading...Loading...