Точка принадлежи към сегмента, геометрични алгоритми, programmirovanie-DLA-sshool

Урок от серията "Геометрични алгоритми"

Здравейте, скъпи читателю!

Днес ще разгледаме още един типичен задача на серия от геометрични алгоритми. Напишете функция, която ще провери принадлежността на всяка точка на сегмента. дал координатите на своето начало и край.

За изпълнение на сравнения на реални данни пишат още две функции: EqPoint () функция, която ще провери дали двете точки съвпадат на самолет и функция RealMoreEq на (). която ще се използва за проверка на връзката "> =" (по-голям от или равен на). Причината за въвеждане на специални функции, които вече знаем.

Задача. Проверете дали точката принадлежи към сегмента.

Нека точките - началната и крайната точка на сегмента. - произволна точка на самолета.

Вектор, като се започне от точка и крайната точка ще има координати (х 2-X1, Y2-у1).

Ако Р (х, у) - произволна точка, координатите на вектора са равни на: (х-х1, Y - Y 1).

точка Р, ще принадлежат към сегмента, ако:

  1. Вектори и са колинеарни (нула на вектор продукт):
    . т.е. (Х-х1) (y2-1ил) - (у-у1) (х2-х1) = 0
  2. Абсцисата на Р отговаря на условието за точка или. В противен случай, точката ще бъде по линията на ляво или на правилната дължина.

Резултатите от програмата.

Въведете координатите на точки: x1, y1, x2, y2, X, Y
0,5 1 2,5 2,8 1,203 1,633
Да.

Резултатите от тестовете за Geogebra на програмата:

Точка принадлежи към сегмента, геометрични алгоритми, programmirovanie-DLA-sshool

Днес, ние сме писмени AtOtres () функция. който тества произволна точка, която принадлежи към сегмента, предвид неговите координати.

Два допълнителни функции: EqPoint () и RealMoreEq () за изпълнение на сравнения на реални данни. Първите проверява дали двете точки на една и съща равнина, а втората - се използва за тестване на връзката "> =".

В следващия урок, въз основа на предварително писмени процедури, пишете на процедурата за определяне на координатите на пресечната точка на два сегмента.

С това аз казвам сбогом на вас. Ще се видим в следващия урок.

Сподели с приятели

Благодарим Ви, че формулата!

Добър ден. Благодаря. от голяма полза за вашия урок, но има един въпрос. Вече са посочили, че colinearity на векторите трябва да удовлетворява уравнението (х-х1) (y2-1ил) - (у-у1) (х2-х1) = 0 е yavlyaetsya вектор продукт. Аз не разбирам тази точка. продукт вектор е вектор. Търсенето уравнение по-горе, както се разбере уравнение получен от права преминаване през две точки на равнината (х-х1) / (х2-х1) = (у-у1) / (y2-у1). Поправи ме, моля, ако греша, но ми се струва, че грешката тук.

- ъгълът между векторите, P1P2 и P1P = 0, еднакви за P2P1 и P2P. Алтернативно, за скорост, вътрешното произведение на тези вектори> = 0, защото действителните стойности на ъглите не се нуждаем.

Сайтът е създаден за студентите и преподавателите на информатиката. На сайта можете да намерите уроци по езици за програмиране на Паскал, Лазар, и Visual Basic.NET.
Освен това, тук ще намерите уроци в 3-D моделиране програма Blender.

Последните публикации на блога