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

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

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

компас

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

За трьома точками

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

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

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

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

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

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

Document2D.ksArcBy3Points(90 , 100,//точка A

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

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

По центру та кутам

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

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

f1: Double; f2: Double; //кути дуги

direction: Smallint; //напрямок малювання

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

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

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

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

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

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

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

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

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

Document2D.ksArcByAngle(100,100,//координати центру

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

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

По центру та кінцевим точкам

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

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

rad: Double;//радіус дуги

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

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

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

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

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

Document2D.ksArcByPoint(100,100,//центр дуги

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

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

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

Джерело: Сергій Сергій, «РОЗРОБКА ДОДАТКІВ ПІД КОМПАС В DELPHI»