Sdílet prostřednictvím


Kardinální splajny 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ě.

kardinální spline

Fyzické a matematické splines

Fyzický spline je tenký kus dřeva nebo jiného pružné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í křivku na kus papíru a ukotví ji k určeným bodům. 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 vytvořila jinou křivku než extrémně flexibilní křivka.

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é spliny různých napětí vytvoří různé křivky skrze danou množinu bodů, matematické spliny s různými hodnotami parametru napětí vytvoří různé křivky skrze danou množinu bodů. Následující obrázek znázorňuje čtyři kardinální splajny procházející 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 mezi body zvolila nejkratší cestu (rovná čára). Napětí 1 odpovídá žádnému fyzickému napětí, což umožňuje spline vzít cestu nejmenšího celkového ohybu. S hodnotami napětí většími než 1 se křivka chová jako stlačená pružina, která je nucena zaujmout delší dráhu.

Kardinalní Spliney

Č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.

K vykreslení kardinální spline potřebujete instanci třídy Graphics, Pena pole objektů Point. Instance třídy Graphics 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 kardinální 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é