Побудова перпендикуляра до відрізка – КОМПАС в DELPHI

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

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

1)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp вирішувати дану задачу вручну з використанням знань аналітичної геометрії або векторної алгебри1

2)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp використовувати систему КОМПАС, яка сама вирішить цю задачу за нас

Ось про те, як вирішувати цю задачу з використанням системи КОМПАС ми і поговоримо

У інтерфейсу ksMathematic2D, з яким ми вже працювали в попередніх розділах, є спеціальний метод, призначений якраз для вирішення нашої задачі ksPerpendicular Ось прототип цього методу:

ksPerpendicular(

x: Double y: Double x1: Double y1: Double x2: Double y2: Double

var xp: Double var yp: Double

): WordBool

Тут: x і y – координати точки, через яку повинен проходити перпендикуляр

x1 і y1 – координати першої точки відрізка, до якого шукається перпендикуляр

x2 і y2 – координати другої точки відрізка, до якого шукається перпендикуляр

xp і yp – в ці параметри будуть записані координати знайденої точки перетину відрізка і перпендикуляра до нього

У разі успішного виконання даний метод повертає значення

true

Начебто нічого складного Переходимо до практики

1 У термінах векторної алгебри дана задача вирішується до непристойності просто Якщо у нас заданий вектор [x y], то перпендикулярний йому вектор буде здаватися: або [-y x], або [y-x]

Нижче наводиться фрагмент програми демонструє роботу з цим методом

var

kompas: KompasObject Document2D: ksDocument2D Mathematic2D: ksMathematic2D xp, yp: Double

……………………

Begin

……………………

/ / Будуємо відрізок, перпендикуляр до якого ми і будемо шукати

Document2DksLineSeg(100, 100, 120, 140, 1)

/ / Отримуємо інтерфейс ksMathematic2D

Mathematic2D:=ksMathematic2D(kompasGetMathematic2D())

/ / Позначаємо кружечком точку, через яку повинен проходити перпендикуляр

Document2dksPoint(140,150, 5)

/ / Шукаємо перпендикуляр

Mathematic2DksPerpendicular(140, 150, //x, y

100, 100, //x1, y1

120, 140, //x2, y2

xp, yp)

/ / Будуємо знайдений перпендикуляр

Document2DksLineSeg(140, 150, xp, yp, 1)

/ / Позначаємо хрестиком точку, знайдену системою КОМПАС

Document2dksPoint(xp,yp, 1) kompasVisible:=true

end

У результаті роботи цієї програми ви побачите приблизно таку картину:

Як бачите на ній зображено два відрізки перпендикулярних один до одного Перший (той, що довше) ми побудували на самому початку програмі і саме для нього ми шукали перпендикуляр Система КОМПАС знайшла точку перетину між прямою, якій належить цей відрізок і перпендикуляром до неї, що проходить через точку з координатами (140 150) (вона позначена кружечком) Знайдена системою КОМПАС точка позначена хрестиком Можна легко переконатися в тому, що вона належить тій же прямій, що і початковий відрізок

Джерело: Норсеев Сергій, «розробка програм під КОМПАС У DELPHI»

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*