---
title: "CornerParam - Структура параметров скругленных (или усеченных) углов прямоугольников и правильных многоугольников"
type: struct
api: [api7]
domain: [feature]
tags: [struct, api7, feature, structcornerparam]
sources:
  - structcornerparam.html
---

*Структуры параметров и константы > Структуры параметров графических объектов *


## CornerParam - Структура параметров скругленных (или усеченных) углов прямоугольников и правильных многоугольников

Аналог данных параметров при использовании Automation - интерфейс ksCornerParam.
| int | index | индекс (номер) угла (0, 1, 2, ...), |
| --- | --- | --- |
| unsigned char | fillet | признак фаски/скругления: 0 - фаска, 1 -скругление, |
| double | l1 | длина фаски первого сегмента или радиус скругления, |
| double | l2 | длина фаски второго сегмента. |
Примечание:
Данная структура используется внутри структуры параметров прямоугольника RectangleParam или правильного многоугольника RegularPolygonParam для задания скруглений и фасок на определенных углах этого многоугольника. Если скругления и фаски не нужны, то структура CornerParam не используется.
Пример работы со структурой CornerParam и массивом CORNER_ARR


## Пример использования структуры параметров CornerParamи массива CORNER_ARR

reference arr = ::CreateArray (CORNER_ARR, 0); // создать массив параметров углов
CornerParam par; // структура параметров угла
par.index = 5; // индекс угла
par.fillet = 0; // признак фаски
par.l1 = 345; // длина фаски 1 сегмента
par.l2 = 456.987; // длина фаски 2 сегмента
::AddArrayItem (arr, -1, &par, sizeof (CornerParam)); // добавить угол в массив
par.index = 45; // индекс угла
par.fillet = 0; // признак фаски
par.l1 = 345; // длина фаски 1 сегмента
par.l2 = 456.987; // длина фаски 2 сегмента
::AddArrayItem (arr, -1, &par, sizeof (CornerParam));// добавить угол в массив
par.index = 65; // индекс угла
par.fillet = 0; // признак фаски
par.l1 = 345; // длина фаски 1 сегмента
par.l2 = 456.987; // длина фаски 2 сегмента
::AddArrayItem (arr, -1, &par, sizeof (CornerParam));// добавить угол в массив
par.index = 85; // индекс угла
par.fillet = 0; // признак фаски
par.l1 = 345; // длина фаски 1 сегмента
par.l2 = 456.987; // длина фаски 2 сегмента
::AddArrayItem (arr, -1, &par, sizeof (CornerParam));// добавить угол в массив
int count = ::GetArrayCount (arr); // количество элементов в массиве
for ( int i = 0; i < count; i ) {
// выводим параметры углов в окне сообщения
char buf[128];
if ( ::GetArrayItem (arr, i, &par, sizeof (CornerParam))) {
::sprintf ( buf, "индекс элемента %i равен %i; %i, %f, %f", i,
par.index, par.fillet, par.l1, par.l2);
::Message (buf);
}
}
::ExcludeArrayItem (arr, 2); // удаляем второй элемент массива
count = ::GetArrayCount (arr); // количество элементов в массиве
for ( int i = 0; i < count; i ) {
// выводим параметры углов в окне сообщения
char buf [128];
if ( ::GetArrayItem (arr, i, &par, sizeof (CornerParam))) {
::sprintf (buf, "индекс элемента %i равен %i; %i, %f, %f", i, par.index,
par.fillet, par.l1, par.l2 );
::Message( buf );
}
}
if ( ::GetArrayItem (arr, 1, &par, sizeof (CornerParam))) {
// изменяем параметры элемента с индексом 1
par.index = 0;
par.fillet = 0;
par.l1 = 0;
par.l2 = 0;
::SetArrayItem( arr, 1, &par, sizeof(CornerParam) );
}
count = ::GetArrayCount (arr); // количество элементов в массиве
for ( int i = 0; i < count; i ) {
// выводим параметры углов в окне сообщения
char buf[128];
if ( ::GetArrayItem (arr, i, &par, sizeof (CornerParam))) {
::sprintf (buf, "индекс элемента %i равен %i; %i, %f, %f", i, par.index,
par.fillet, par.l1, par.l2);
::Message( buf );
}
}
::ClearArray (arr); // очищаем массив
char buf[128];
::sprintf (buf, "кол-во элементов = %i", ::GetArrayCount (arr));
::Message (buf);
::DeleteArray (arr); // удаляем массив
