---
title: "Bezier - Создать кривую Безье"
type: guide
api: [api7]
tags: [guide, api7, bezier]
sources:
  - bezier.html
---

*API экспортных функций > Функции работы с графическим документом  > Создание графических объектов  > Кривые Безье, Nurbs, ломаные *


## Bezier - Создать кривую Безье

Пример...
Аналог данной функции при использовании Automation - метод ksDocument2D::ksBezier.
Синтаксис:
```
int Bezier (int closed, unsigned int style);
Входные параметры:
closed    - признак замыкания сплайна: 0 - незамкнутый, 1 - замкнутый,
style    стиль линии.
Системные стили линий...
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
1. Характерные точки кривой Безье задаются функциями Point (если не надо задавать производные в узлах) или BezierPoint (при необходимости задания производных) до вызова EndObj.
2. Объект создается в текущем слое текущего вида.
3. В качестве стиля линии можно задавать номер системного или пользовательского стиля линии.
4. Функция EndObj возвращает указатель на созданный объект Кривая Безье.


## Bezier, _Bezier - пример использования

void Bezier_Example (void)
{
double x[5]={15, 35, 55, 75, 95 };
double y[5]={15, 75, 25, 95, 15 };
Bezier (1, 0); // определение кривой
Point (10, 10, 1);
Point (30, 70, 1);
Point (50, 20, 1);
Point (70, 90, 1);
Point (90, 10, 1);
EndObj (); // закончить формирование кривой
// задание производных в узлах
BezierPointParam par;
double x[] = { 0, 20, 50, 70, 100, 50 };
double y[] = { 0, 20, 10, 20, 0, -50 };
double ang[] = { 0, 30, 40, 45, -45, -30 };
double left[] = { 1, 1, 2, 3, 1, 1 };
double right[]= { 2, 2, 1, 1, 3, 4 };
reference p = Bezier (0, 1);
for (int i=0; i<5; i)
{
par.x = x[i]; par.y = y[i];
par.ang = ang[i];
par.left = left[i]; par.right = right[i];
BezierPoint(&par);
}
EndObj(); // закончить формирование кривой
_Bezier (&par, 6, 0, 1);
};
