Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,100 +0,0 @@
|
|||
with PDF_Out; use PDF_Out;
|
||||
|
||||
procedure Drift is
|
||||
|
||||
X_Distance : constant := 30.0;
|
||||
Y_Distance : constant := 30.0;
|
||||
X_Length : constant := 20.0;
|
||||
Y_Length : constant := 20.0;
|
||||
Edge_Width : constant := 1.5;
|
||||
Corner : constant Point := (220.0, 140.0);
|
||||
|
||||
type Edge_Kind is (Top, Right, Bottom, Left);
|
||||
type Square_Kind is (Left_Top, Top_Right, Right_Bottom, Bottom_Left);
|
||||
-- Signifies the white edges on the blue squares
|
||||
|
||||
LT : constant Square_Kind := Left_Top;
|
||||
TR : constant Square_Kind := Top_Right;
|
||||
RB : constant Square_Kind := Right_Bottom;
|
||||
BL : constant Square_Kind := Bottom_Left;
|
||||
|
||||
type X_Index is range 0 .. 11;
|
||||
type Y_Index is range 0 .. 11;
|
||||
Squares : constant array (Y_Index, X_Index) of Square_Kind :=
|
||||
(11 => (LT, BL, BL, RB, RB, TR, TR, LT, LT, BL, BL, RB),
|
||||
10 => (LT, LT, BL, BL, RB, RB, TR, TR, LT, LT, BL, BL),
|
||||
09 => (TR, LT, LT, BL, BL, RB, RB, TR, TR, LT, LT, BL),
|
||||
08 => (TR, TR, LT, LT, BL, BL, RB, RB, TR, TR, LT, LT),
|
||||
07 => (RB, TR, TR, LT, LT, BL, BL, RB, RB, TR, TR, LT),
|
||||
06 => (RB, RB, TR, TR, LT, LT, BL, BL, RB, RB, TR, TR),
|
||||
05 => (BL, RB, RB, TR, TR, LT, LT, BL, BL, RB, RB, TR),
|
||||
04 => (BL, BL, RB, RB, TR, TR, LT, LT, BL, BL, RB, RB),
|
||||
03 => (LT, BL, BL, RB, RB, TR, TR, LT, LT, BL, BL, RB),
|
||||
02 => (LT, LT, BL, BL, RB, RB, TR, TR, LT, LT, BL, BL),
|
||||
01 => (TR, LT, LT, BL, BL, RB, RB, TR, TR, LT, LT, BL),
|
||||
00 => (TR, TR, LT, LT, BL, BL, RB, RB, TR, TR, LT, LT));
|
||||
-- PDF has origo in lower left corner of the paper. Reverse
|
||||
-- Y_Index so the program text looks like the output.
|
||||
|
||||
Light_Olive : constant Color_Type := (0.827, 0.816, 0.016);
|
||||
Pale_Blue : constant Color_Type := (0.196, 0.314, 1.000);
|
||||
White : constant Color_Type := (1.000, 1.000, 1.000);
|
||||
|
||||
Colors : constant array (Square_Kind, Edge_Kind) of Color_Type :=
|
||||
(Left_Top => (Top | Left => White, others => Black),
|
||||
Top_Right => (Top | Right => White, others => Black),
|
||||
Right_Bottom => (Right | Bottom => White, others => Black),
|
||||
Bottom_Left => (Bottom | Left => White, others => Black));
|
||||
|
||||
PDF : PDF_Out_File;
|
||||
|
||||
procedure Fill_Poly (P1, P2, P3, P4 : Point; Color : Color_Type) is
|
||||
begin
|
||||
PDF.Color (Color);
|
||||
PDF.Move (Corner + P1);
|
||||
PDF.Line (Corner + P2);
|
||||
PDF.Line (Corner + P3);
|
||||
PDF.Line (Corner + P4);
|
||||
PDF.Finish_Path (Close_Path => True,
|
||||
Rendering => Fill,
|
||||
Rule => Nonzero_Winding_Number);
|
||||
end Fill_Poly;
|
||||
|
||||
procedure Draw_Square (Pos : Point; Kind : Square_Kind) is
|
||||
Inner_TL : constant Point := Pos + (0.0, Y_Length);
|
||||
Inner_TR : constant Point := Pos + (X_Length, Y_Length);
|
||||
Inner_BR : constant Point := Pos + (X_Length, 0.0);
|
||||
Inner_BL : constant Point := Pos + (0.0, 0.0);
|
||||
Outer_TL : constant Point := Inner_TL + (-Edge_Width, Edge_Width);
|
||||
Outer_TR : constant Point := Inner_TR + (Edge_Width, Edge_Width);
|
||||
Outer_BR : constant Point := Inner_BR + (Edge_Width, -Edge_Width);
|
||||
Outer_BL : constant Point := Inner_BL + (-Edge_Width, -Edge_Width);
|
||||
begin
|
||||
Fill_Poly (Inner_TL, Inner_TR, Inner_BR, Inner_BL, Pale_Blue);
|
||||
Fill_Poly (Inner_TL, Outer_TL, Outer_TR, Inner_TR, Colors (Kind, Top));
|
||||
Fill_Poly (Inner_TR, Outer_TR, Outer_BR, Inner_BR, Colors (Kind, Right));
|
||||
Fill_Poly (Inner_BR, Outer_BR, Outer_BL, Inner_BL, Colors (Kind, Bottom));
|
||||
Fill_Poly (Inner_BL, Outer_BL, Outer_TL, Inner_TL, Colors (Kind, Left));
|
||||
end Draw_Square;
|
||||
|
||||
procedure Draw_Squares is
|
||||
begin
|
||||
for X in Squares'Range (2) loop
|
||||
for Y in Squares'Range (1) loop
|
||||
Draw_Square (Pos => (X => Real (X) * X_Distance,
|
||||
Y => Real (Y) * Y_Distance),
|
||||
Kind => Squares (Y, X));
|
||||
end loop;
|
||||
end loop;
|
||||
end Draw_Squares;
|
||||
|
||||
begin
|
||||
PDF.Create ("peripheral-drift-illusion.pdf");
|
||||
PDF.Page_Setup (A4_Landscape);
|
||||
|
||||
PDF.Color (Light_Olive);
|
||||
PDF.Draw ((10.0, 10.0, 820.0, 575.0), Fill);
|
||||
|
||||
Draw_Squares;
|
||||
PDF.Close;
|
||||
end Drift;
|
||||
Loading…
Add table
Add a link
Reference in a new issue