---
title: "Nurbs - Создать NURBS"
type: guide
api: [api7]
tags: [guide, api7, nurbs]
sources:
  - nurbs.html
---

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


## Nurbs - Создать NURBS

Пример...
Аналог данной функции при использовании Automation - метод ksDocument2D::ksNurbs.
Синтаксис:
```
int Nurbs (unsigned char degree,
unsigned char close,
unsigned int style);
Входные параметры:
degree    - порядок NURBS (степень полинома + 1), от 3 до 10,
close    - признак замыкания сплайна: FALSE - незамкнутый, TRUE - замкнутый,
style    стиль линии.
Системные стили линий...
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
1. Узлы кривой определяются следующими далее функциями Point или NurbsPoint. Описание кривой завершается функцией EndObj, возвращающей указатель на созданную кривую.
2. Объект создается в текущем слое текущего вида.
3. В качестве стиля линии можно задавать номер предопределенного (системного LStyles) или пользовательского стиля линии.


## Кривые Безье, Nurbs, ломаные

Функции данного радела обеспечивают построение NURBS и кривых Безье.
Bezier - Создать кривую Безье
_Bezier - Создать кривую Безье по массиву точек (узлов кривой Безье)
BezierPoint - Построить узел кривой Безье
ksAddPowerForm - Ввести параметр для построения NURBS кусочно-степенным способом
ksCreatePowerArc - Построить дугу NURBS кусочно-степенным способом и присоединить ее к существующей кривой NURBS
ksNurbsKnot - Создать узел NURBS-кривой
ksPolyline - Создать ломаную
_ksPolyline - Создать ломаную линию
ksPolylineEx - Создать ломаную линию
Nurbs - Создать NURBS
NurbsForConicCurve - Создать NURBS по характеристическим точкам конического сечения
NurbsPoint - Создать узел NURBS
TanLineAngCurve - Функция расчета касательной к кривой


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

void Nurbs_Example (void) {
static NurbsPointParam par[]={{ 0,0,1}, {20,20,1}, {50,10,1}, {70,20,1}, {100,0,1}, {50,-50,1}};
//построить Nurbs-кривую
if (Nurbs(3, 0, 1))
for (int i=0; i<6; i) {
NurbsPoint(&par[i]);
}
reference p = EndObj();
LightObj(p, 1);
Message(NURBS);
LightObj(p, 0);
}
}; /* Nurbs_Example */
