Дуга кола Що ми будемо будувати – КОМПАС в DELPHI

У цьому розділі ми розглянемо три методи побудови дуг окружності Для кращої їх демонстрації пропоную використовувати їх для побудови однієї і тієї ж дуги

Як приклад такої дуги візьмемо півколо радіуса 10 з центром в точці з координатами (100,100)

Тепер перейдемо безпосередньо до самих методів

Для побудови дуги кола по трьох точках використовується метод ksArcBy3Points інтерфейсу ksDocument2D Ось його прототип:

ksArcBy3Points(

x1: Double y1: Double / / Координати початкової точки

x2: Double y2: Double  / / Координати проміжної точки x3: Double y3: Double / / Координати кінцевої точки style: Integer           / / Стиль лінії

): Integer

У разі успіху даний метод повертає покажчик на дугу, а в разі помилки нуль

Тепер подивимося, як він може бути використаний для побудови нашої дуги В якості початкової точки може виступати точка A, в якості кінцевої точка C, а в якості проміжної точка B

Тепер визначимося з їх координатами З початкових умов завдання випливає, що точка A має координати (90,100), точка B (100, 110), а точка C (110,100) Тепер можемо будувати:

Var

………

Begin

………

Document2D: ksDocument2D

Document2DksArcBy3Points(90 , 100, / / Точка A

100, 110, / / Точка B

110, 100, / / Точка C

1         / / Стиль лінії

)

………

Для побудови дуги по центру і кутам використовується метод ksArcByAngle інтерфейсу ksDocument2D Ось його прототип:

ksArcByAngle(

xc: Double yc: Double / / Координати центру кола дуги rad: Double / / Радіус дуги

f1: Double f2: Double / / Кути дуги

direction: Smallint / / Напрямок отрисовки

style: Integer / / стиль лінії

): Integer

Тепер докладніше

З параметрами xc, yc, rad і style думаю все ясно З ними питань виникнути не повинно

Параметри f1 і f2 задають кути між прямими радіусами дуги в початковій і кінцевій точках дуги і горизонтальної прямої Дані кути показані на малюнку нижче

Звертаю вашу увагу на те, що побудова ведеться від кута f1 до кута f2

Тепер з приводу параметра direction Він задає напрямок, в якому слід відмальовувати дугу Якщо він дорівнює 1, то дуга отрісовивается проти годинникової стрілки, якщо ж він дорівнює -1, то за годинниковою стрілкою Наприклад, дуга, зображена на малюнку вище, промальовані проти годинникової стрілки, а на малюнку нижче представлена ​​ця ж сама дуга, але отрісовани вже за годинниковою стрілкою

У разі успіху даний метод повертає покажчик на дугу, а в разі помилки нуль

Тепер повернемося до нашої дузі, яку потрібно побудувати Для її отрисовки проти годинникової стрілки параметри повинні бути задані таким чином: f1 = 0, f2 = 180 Для отрисовки цієї ж дуги але, по

годинниковою стрілкою значення кутів потрібно поміняти місцями (тобто f1 = 180, f2 = 0)

Код побудови може виглядати наступним чином:

Var

………

Begin

………

………

Document2D: ksDocument2D

Document2DksArcByAngle(100,100, / / Координати центру

10 ,    / / Радіус

0 , 180,/ / Кути

1 ,    / / Проти годинникової стрілки

1      / / Основний стиль лінії

)

Для побудови дуги по центру і кінцевим точкам використовується метод ksArcByPoint інтерфейсу ksDocument2D Ось його прототип:

ksArcByPoint(

xc: Double yc: Double / / Координати центру дуги

rad: Double            / / Радіус дуги

x1: Double y1: Double / / Координати першої точки x2: Double y2: Double / / Координати другої точки direction: Smallint    / / Напрямок отрисовки style: Integer          / / Стиль лінії

): Integer

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

У разі успіху даний метод повертає покажчик на дугу, а в разі помилки нуль

Тепер з приводу нашої дуги Всі необхідні параметри для її побудови у нас вже є У якості першої та другої точок ми будемо брати

точки A і C Нижче наводиться код побудови такої дуги

Var

………

Begin

………

Document2D: ksDocument2D

Document2DksArcByPoint(100,100, / / Центр дуги

………

90 , 100, / / Точка A

1,       / / Проти годинникової стрілки

1        / / Основний стиль лінії

)

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

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


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

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

Ваш отзыв

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

*

*