Кардиналы с splines
Кардинал сплайн — это последовательность отдельных кривых, присоединенных к форме более крупной кривой. Строка сплайна определяется массивом точек и параметром напряженности. Кардиналовая линия сплайн проходит плавно через каждую точку в массиве; Нет острых углов и никаких резких изменений в жесткости кривой. На следующем рисунке показан набор точек и кардиналовая сплайн, которая проходит через каждую точку в наборе.
Физический сплайн является тонким кусок дерева или другого гибкого материала. До появления математических сплайнов дизайнеры использовали физические сплайны для рисования кривых. Конструктор поместит сплайн на лист бумаги и привязывать его к заданному набору точек. Затем конструктор может создать кривую, нарисовав вдоль сплайна карандашом. Заданный набор точек может дать различные кривые в зависимости от свойств физической сплайна. Например, сплайн с высокой устойчивостью к сгибу будет производить другую кривую, чем чрезвычайно гибкий сплайн.
Формулы математических сплайнов основаны на свойствах гибких построителей, поэтому кривые, созданные математическими сплайнами, похожи на кривые, которые когда-то были произведены физическими сплайнами. Так же, как физические сплайны разной напряженности будут производить различные кривые через заданный набор точек, математические сплайны с различными значениями для параметра напряженности будут производить различные кривые через заданный набор точек. На следующем рисунке показаны четыре кардиналового сплайна, проходящие через тот же набор точек. Напряженность показана для каждого сплайна. Обратите внимание, что напряжение 0 соответствует бесконечной физической напряженности, заставляя кривую принимать самый короткий путь (прямые линии) между точками. Напряжение 1 соответствует не физической напряженности, что позволяет сплайну пройти путь наименее полного сгиба. При значении напряженности больше 1 кривая ведет себя как сжатая весна, толкнутая, чтобы занять более длинный путь.
Обратите внимание, что четыре сплайна на предыдущем рисунке используют ту же тангенсную линию в начальной точке. Тангенс — это линия, рисуемая от начальной точки до следующей точки вдоль кривой. Аналогичным образом, общий тангенс в конечной точке является линией, рисуемой от конечной точки к предыдущей точке кривой.
Чтобы нарисовать сплетную линию, требуется объектграфики, объект пера и массив объектов Point. Объект графики предоставляет метод DrawCurve, который рисует линию сплайна, а объект пера сохраняет атрибуты строки сплайна, например ширину линии и цвет. Массив объектов Point сохраняет точки, через которые будет проходить кривая. В следующем примере рисуется кардиналовая линия сплайна, которая проходит через точки в myPointArray. Третий параметр — это напряженность.
myGraphics.DrawCurve(&myPen, myPointArray, 3, 1.5f);