Sdílet prostřednictvím


Základní křivky v GDI+

Kardinalní křivka je posloupnost jednotlivých křivek spojených s větší křivkou. Křivka je určena polem bodů a parametrem napětí. Kardinalní křivka prochází hladce každým bodem v matici; nejsou ostré rohy a žádné náhlé změny v těsnosti křivky. Následující obrázek znázorňuje sadu bodů a kardinalický spline, který prochází jednotlivými body v sadě.

Cardinal Spline

Fyzické a matematické splines

Fyzický spline je tenký kus dřeva nebo jiného flexibilního materiálu. Před nástupem matematických splineů používali návrháři k kreslení křivek fyzické křivky. Návrhář umístí spline na kus papíru a ukotví ho k dané sadě bodů. Návrhář pak může vytvořit křivku kreslením podél křivky perem nebo tužkou. Daná sada bodů by mohla přinést různé křivky v závislosti na vlastnostech fyzické spline. Například křivka s vysokou odolností proti ohybu by generovala jinou křivku než extrémně flexibilní spline.

Vzorce pro matematické křivky jsou založeny na vlastnostech flexibilních prutů, takže křivky vytvořené matematickými křivkami jsou podobné křivkám, které byly vytvořeny fyzickými křivkami. Stejně jako fyzické splines různých napětí vytvoří různé křivky prostřednictvím dané množiny bodů, matematické křivky s různými hodnotami pro parametr napětí vytvoří různé křivky přes danou sadu bodů. Následující obrázek znázorňuje čtyři kardinaly, které procházejí stejnou sadou bodů. Napětí je zobrazeno pro každou křivku. Napětí 0 odpovídá nekonečnému fyzickému napětí, které vynutí křivku, aby se mezi body vezmou nejkratší cestu (rovné čáry). Napětí 1 odpovídá žádnému fyzickému napětí, což umožňuje spline vzít cestu nejmenšího celkového ohybu. Při napínání hodnot větších než 1 se křivka chová jako komprimovaná pružina, která trvá delší cestu.

Cardinal Splines

Čtyři křivky v předchozím obrázku sdílejí stejnou tečnou čáru v počátečním bodě. Tangens je čára nakreslená od počátečního bodu k dalšímu bodu podél křivky. Sdílený tangens v koncovém bodě je přímka nakreslená od koncového bodu k předchozímu bodu křivky.

Chcete-li nakreslit kardinalitu spline, potřebujete instanci Graphics třídy, Pena pole Point objektů Instance Graphics třídy poskytuje metodu DrawCurve , která nakreslí spline a Pen ukládá atributy spline, jako je šířka čáry a barva. Pole Point objektů ukládá body, kterými bude křivka procházet. Následující příklad kódu ukazuje, jak nakreslit kardinalitu spline, která prochází body v myPointArray. Třetí parametr je napětí.

myGraphics.DrawCurve(myPen, myPointArray, 1.5f);
myGraphics.DrawCurve(myPen, myPointArray, 1.5F)

Viz také