Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,75 +0,0 @@
|
|||
with PDF_Out; use PDF_Out;
|
||||
|
||||
procedure Hilbert_Curve_PDF is
|
||||
|
||||
Length : constant := 500.0;
|
||||
Corner : constant Point := (50.0, 300.0);
|
||||
|
||||
type Rule_Type is (A, B, C, D);
|
||||
|
||||
PDF : PDF_Out.Pdf_Out_File;
|
||||
First : Boolean;
|
||||
|
||||
procedure Hilbert (Order : in Natural;
|
||||
Rule : in Rule_Type;
|
||||
Length : in Real;
|
||||
X, Y : in Real)
|
||||
is
|
||||
L : constant Real := Length / 4.0;
|
||||
begin
|
||||
if Order = 0 then
|
||||
if First then
|
||||
First := False;
|
||||
PDF.Move (Corner + (X, Y));
|
||||
else
|
||||
PDF.Line (Corner + (X, Y));
|
||||
end if;
|
||||
else
|
||||
case Rule is
|
||||
when A =>
|
||||
Hilbert (Order - 1, D, 2.0 * L, X - L, Y + L);
|
||||
Hilbert (Order - 1, A, 2.0 * L, X - L, Y - L);
|
||||
Hilbert (Order - 1, A, 2.0 * L, X + L, Y - L);
|
||||
Hilbert (Order - 1, B, 2.0 * L, X + L, Y + L);
|
||||
when B =>
|
||||
Hilbert (Order - 1, C, 2.0 * L, X + L, Y - L);
|
||||
Hilbert (Order - 1, B, 2.0 * L, X - L, Y - L);
|
||||
Hilbert (Order - 1, B, 2.0 * L, X - L, Y + L);
|
||||
Hilbert (Order - 1, A, 2.0 * L, X + L, Y + L);
|
||||
when C =>
|
||||
Hilbert (Order - 1, B, 2.0 * L, X + L, Y - L);
|
||||
Hilbert (Order - 1, C, 2.0 * L, X + L, Y + L);
|
||||
Hilbert (Order - 1, C, 2.0 * L, X - L, Y + L);
|
||||
Hilbert (Order - 1, D, 2.0 * L, X - L, Y - L);
|
||||
when D =>
|
||||
Hilbert (Order - 1, A, 2.0 * L, X - L, Y + L);
|
||||
Hilbert (Order - 1, D, 2.0 * L, X + L, Y + L);
|
||||
Hilbert (Order - 1, D, 2.0 * L, X + L, Y - L);
|
||||
Hilbert (Order - 1, C, 2.0 * L, X - L, Y - L);
|
||||
end case;
|
||||
end if;
|
||||
end Hilbert;
|
||||
|
||||
procedure Hilbert (Order : Natural; Color : Color_Type) is
|
||||
begin
|
||||
First := True;
|
||||
PDF.Stroking_Color (Color);
|
||||
Hilbert (Order, A, Length, Length / 2.0, Length / 2.0);
|
||||
PDF.Finish_Path (Close_Path => False,
|
||||
Rendering => Stroke,
|
||||
Rule => Nonzero_Winding_Number);
|
||||
end Hilbert;
|
||||
|
||||
begin
|
||||
PDF.Create ("hilbert.pdf");
|
||||
PDF.Page_Setup (A4_Portrait);
|
||||
PDF.Line_Width (2.0);
|
||||
|
||||
PDF.Color (Black);
|
||||
PDF.Draw (Corner + (0.0, 0.0, Length, Length), Fill);
|
||||
|
||||
Hilbert (6, Color => (0.9, 0.1, 0.8));
|
||||
Hilbert (5, Color => (0.0, 0.9, 0.0));
|
||||
|
||||
PDF.Close;
|
||||
end Hilbert_Curve_PDF;
|
||||
Loading…
Add table
Add a link
Reference in a new issue