З огляду на 4 бали, що описують 2 відрізки рядка, як обчислити, чи пряма А знаходиться в бік від лінії Б?
Дві лінії мають фіксовану довжину і можуть вимірюватися як відстань від x1 / y1 до x2 / y2.

З огляду на 4 бали, що описують 2 відрізки рядка, як обчислити, чи пряма А знаходиться в бік від лінії Б?
Дві лінії мають фіксовану довжину і можуть вимірюватися як відстань від x1 / y1 до x2 / y2.

Відповіді:
Нехай Aі Bбуде дві точки на чорній лінії. Нехай Cі Dбуде вашим синім сегментом. Знак zкоординати перехресного добутку AB^ACговорить вам, чи Cє "лівою" чи "правою" чорної лінії. Аналогічно, перехресний продукт AB^CDповідомляє вам, чи CDспрямовують "ліворуч" або "праворуч" чорної лінії.
Ми насправді не хочемо знати, це ліворуч чи праворуч; все, що ми хочемо, - це переконатися, що вони однакові або протилежні, тому ми множимо два значення.
Отже, такий псевдокод повинен працювати:
z1 = (xB-xA)*(yC-yA) - (yB-yA)*(xC-xA);
z2 = (xB-xA)*(yD-yC) - (yB-yA)*(xD-xC);
z3 = z1 * z2;
if (z3 < 0)
; /* Pointing towards (BUT maybe even crossing) */
else if (z3 > 0 || z2 != 0)
; /* Pointing away */
else
; /* Parallel */
Боюся, мені потрібен певний час, щоб написати правильне рішення для кривої Безьє. Чи є така ситуація назустріч чи поза?

Припустимо, що початковою точкою є зелене коло, а кінцевою - червона стрілка
Обчисліть відстань між початковою точкою, як DS, і чорним відрізком, і зробіть те ж саме для кінцевої точки (червона стрілка), як DE. Якщо DS> DE, то сегмент спрямований у бік. якщо DE> DS, він вказує. Якщо обидва рівні, два - паралелі.
Ви можете знайти , як обчислити відстань від точки до відрізка тут і квадратичної кривої Безьє тут . Однак, залежно від форми кривої Безьє, вона може повернути дивні результати (крива може перетинати себе)