русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Сплайны


Дата добавления: 2013-12-23; просмотров: 1683; Нарушение авторских прав


Сплайн представляет собой гладкую незамкнутую кривую. Понятие сплайна пришло из инженерной графики, где под сплайном понимался гибкий прут, с помощью которого конструкторы вычерчивали кривые, изгибая его на плоскости вокруг торчащих из неё гвоздей. Сплайн должен пройти через фиксированный набор точек так, чтобы получающаяся линия была гладкой и не имела изломов. Форма линии зависит от гибкости прута. Если прут окажется недостаточно гибким, он может сломаться.

В современной компьютерной графике для вычерчивания сплайнов используются специальные формулы, в которых учитывается гибкость сплайна. Более гибкий сплайн имеет более крутые изгибы, а менее гибкий не так легко огибает ключевые точки.

Сплайн создаётся с помощью метода DrawCurve. При этом определяется перо, ключевые точки сплайна и его упругость. Если упругость сплайна равно 0, то это значит, что он абсолютно упругий, как резиновая лента. Сплайн с упругостью 0 представляет собой ломанную линию и фактически не является кривой. Чем выше упругость, тем более гладкой получается кривая. Значение упругости задавать не обязательно, по умолчанию она равна 1.

Гибкость сплайна имеет тип Single и может иметь дробное значение. Пример использования метода DrawCurve:

Visual Basic .Net:

Dim g As Graphics

g = Me.CreateGraphics

Dim redpen As Pen

redpen = New Pen(Color.Red, 3)

Dim points As Point() = {New Point(10, 10), New Point(10, 100), _

New Point(200, 50), New Point(250, 300)}

g.DrawCurve(redpen, points, 0.5)

Visual C#:

Graphics g;

g = this.CreateGraphics();

Pen redpen;

redpen = new Pen(Color.Red, 3);

Point[] points = { new Point(10, 10), new Point(10, 100), new Point(200, 50), new Point(250, 300) };

g.DrawCurve(redpen, points, 0.5f);

 

Можно строить сплайн не по всему массиву точек, а по его части. В этом случае задается сам массив, номер начальной точки и количество точек. Массив точек должен содержать не менее 4 элементов, иначе применение этого метода не имеет смысла, например:



Visual Basic .Net:

Dim p1(6) As Point

p1(0) = New Point(10, 10)

p1(1) = New Point(15, 25)

p1(2) = New Point(35, 50)

p1(3) = New Point(45, 80)

p1(4) = New Point(87, 90)

p1(5) = New Point(100, 100)

g.DrawCurve(redpen, p1, 1, 3, 2)

g.DrawCurve(Pens.Blue, p1, 1, 3, 3)

Visual C#:

Point[] p1=new Point[6];

p1[0] = new Point(10, 10);

p1[1] = new Point(15, 25);

p1[2] = new Point(35, 60);

p1[3] = new Point(45, 80);

p1[4] = new Point(87, 90);

p1[5] = new Point(100, 100);

g.DrawCurve(redpen, p1, 1, 3, 2);

g.DrawCurve(Pens.Blue, p1, 1, 3, 3);

 

Следует иметь в виду, что математический сплайн может иметь любую упругость, хотя при большом её значении форма сплайна получается довольно неожиданной. Физический сплайн при такой упругости может просто сломаться.

 



<== предыдущая лекция | следующая лекция ==>
Многоугольник | Кривые Безье


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.