Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

NURBS-сплайн



Сплайн – это составной объект, определяемый набором опорных точек. Сплайны используются в чертежах, например, при построении профиля зубчатых колес. Рассмотрим пример построения сплайна:

var par: ksNurbsPointParam;

Begin

par:= ksNurbsPointParam(kompas.GetParamStruct(ko_NurbsPointParam));

with par do

Begin

Init;

// 3 – порядок сплайна

// FALSE – незамкнутый (TRUE – замкнутый)

// 1 – стиль линии

iDocument2D.ksNurbs(3,False,1);

x:= 0;

y:= 0;

weight:= 1;

// добавили точку с координатами x,y и "весом" weight

iDocument2D.ksNurbsPoint(par);

x:= 20;

y:= 20;

weight:= 1;

iDocument2D.ksNurbsPoint(par);

x:= 50;

y:= 10;

weight:= 1;

iDocument2D.ksNurbsPoint(par);

x:= 70;

y:= 20;

weight:= 1;

iDocument2D.ksNurbsPoint(par);

x:= 100;

y:= 0;

weight:= 1;

iDocument2D.ksNurbsPoint(par);

x:= 50;

y:= -50;

weight:= 1;

iDocument2D.ksNurbsPoint(par);

// завершили создание объекта

iDocument2D.ksEndObj

End

end;

Здесь сплайн 3-го порядка задан шестью точками.

Текст

Текст отрисовывается методом ksParagraph. Это также составной объект. Для каждого элемента текста можно указывать большое количество параметров, приведенных в Приложении 6.2. Рассмотрим код, выводящий текст, показанный на
рис. 6.1.

Var

par: ksParagraphParam; // абзац

itemParam: ksTextItemParam; // текст

itemFont: ksTextItemFont; // шрифт

Begin

par:= ksParagraphParam(

kompas.GetParamStruct(ko_ParagraphParam));

par.Init;

// параметры абзаца

with par do

begin

x:= 30; // левая верхняя точка

y:= 30;

height:= 25; // высота

width:= 20; // ширина

end;

// создаем абзац

iDocument2d.ksParagraph(par);

// параметры текста

itemParam:= ksTextItemParam(

kompas.GetParamStruct(ko_TextItemParam));

itemParam.Init;

// параметры шрифта

itemFont:= ksTextItemFont(itemParam.GetItemFont);

itemFont.Init;

with itemFont do

Begin

// c новой строчки

SetBitVectorValue(NEW_LINE, true);

// наименование шрифта

FontName:='Arial';

// высота текста в мм

Height:=5;

end;

// собственно текст

ItemParam.s:= 'Первая строка';

// выводим текст

iDocument2d.ksTextLine(itemParam);

// следующая строка

itemFont.Init;

with itemFont DO

Begin

SetBitVectorValue(NEW_LINE, true);

SetBitVectorValue(BOLD_ON, true);

Height:=10;

End;

ItemParam.s:= 'Вторая строка (жирный)';

iDocument2d.ksTextLine(itemParam);

iDocument2d.ksEndObj

end;

Метод SetBitVectorValue управляет оформлением текста и его разбивкой на строки (обратите внимание на константу NEW_LINE). Текст в основной надписи чертежа редактируется другими методами.

Рис. 6.1 Результат отрисовки текста.





Дата публикования: 2014-11-04; Прочитано: 405 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...