| Description | uses | Classes, Interfaces, Objects and Records | Functions and Procedures | Types | Constants | Variables |
Generating so-called "space filling curves", i.e. curves that "walk" through all points of some defined space.
| Name | Description |
|---|---|
Class TSpaceFillingCurve |
To jest abstrakcyjna klasa reprezentujaca interfejs obiektu ktory zwraca kolejne punkty w przestrzeni 2d (0..SizeX-1, 0..SizeY-1) w taki sposob ze w momencie gdy EndOfPixels = true to kazdy pixel z tej przestrzeni zostal zwrocony dokladnie raz przez NextPixel. |
Class TPrecalcCurve |
To nie jest gotowa klasa, tylko przejsciowa klasa abstrakcyjna z ktorej korzystaja THilbertCurve i TPeanoCurve. |
Class TSwapScanCurve |
Najprostszy na swiecie ciag pixeli zapelniajacych ekran. |
Class THilbertCurve |
Wypelniaj przestrzen ciagiem Hilberta obcietym do wymiarow SizeX, SizeY |
Class TPeanoCurve |
Wypelniaj przestrzen ciagiem Peano obcietym do wymiarow SizeX, SizeY |
Class EInvalidSFCurveClassName |
procedure PeanoCurve(InitialOrient: boolean; Angle: TSFCAngle; InitialLevel: Cardinal; Step: TSFCStepFunction; StepData: Pointer); |
procedure HilbertCurve(InitialOrient: boolean; Angle: TSFCAngle; InitialLevel: Cardinal; Step: TSFCStepFunction; StepData: Pointer); |
function StrToSFCurveClass(const s: string): TSpaceFillingCurveClass; |
function AllSFCurveClassesNames: string; |
TSFCAngle = 0..3; |
TSFCStepFunction = procedure (Angle: TSFCAngle; StepFuncData: Pointer); |
TSpaceFillingCurveClass = class of TSpaceFillingCurve; |
AvailableSFCurveClasses: array[0..2]of TSpaceFillingCurveClass=
(TSwapScanCurve, THilbertCurve, TPeanoCurve); |
procedure PeanoCurve(InitialOrient: boolean; Angle: TSFCAngle; InitialLevel: Cardinal; Step: TSFCStepFunction; StepData: Pointer); |
|
Orient to skrot od Orientation, Angle to jakis "poczatkowy" Angle (w cudzyslowach bo tak naprawde to zalezy od krzywej w jaki sposob te Orient i Angle zostana wykorzystane; ale na pewno zdeterminuja ona to po ktorej stronie punktu poczatkowego pojawi sie krzywa). Przyjmujac ze katy TSFCAngle sa interpretowane jako 0 = 0 stopni = w prawo, 1 = 90 stopni = w gore, 2 = 180 stopni = w lewo i 3 = 270 stopni = w dol to musisz podac nastepujace InitialOrient i Angle aby plansza byla zapelniana na lewo i w gore od punktu poczatkowego : Peano: InitialOrient = false, Angle = 0. Hilbert: InitialOrient = true, Angle = 0. |
procedure HilbertCurve(InitialOrient: boolean; Angle: TSFCAngle; InitialLevel: Cardinal; Step: TSFCStepFunction; StepData: Pointer); |
function StrToSFCurveClass(const s: string): TSpaceFillingCurveClass; |
|
dla nazw klas sposrod AvailableSFCurveClasses zwraca odpowiednie klasy. Nazwy klas sa przyrownywane not case-sensitive. Dla czegokolwiek innego wyjatek EInvalidSFCurveClassName. |
function AllSFCurveClassesNames: string; |
|
zwraca wszystkie SFCName dla wszystkich klas AvailableSFCurveClasses, rozdzielone przecinkami i ujete w apostrofy. |
TSFCStepFunction = procedure (Angle: TSFCAngle; StepFuncData: Pointer); |
TSpaceFillingCurveClass = class of TSpaceFillingCurve; |
AvailableSFCurveClasses: array[0..2]of TSpaceFillingCurveClass=
(TSwapScanCurve, THilbertCurve, TPeanoCurve); |
|
wszystkie dostepne koncowe klasy wywodzace sie z TSpaceFillingCurve. Mozesz polegac na fakcie ze ta tablica zawsze bedzie indeksowana od zera. Uzywane TYLKO przez StrToSFCurveClass, AllSFCurveClassesNames. |