DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 6480 (0x1950) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧ └─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04 └─ ⟦d65440be7⟧ »DATA« └─⟦this⟧
with Easy_X; with Elementary_Functions; with Text_Io; use Easy_X; procedure Test_Eays_X (Term : in String) is package Io is new Text_Io.Integer_Io (Integer); use Arithmetic; X, Y : Easy_X.Coordinate; Z : Dimension; procedure Carre (Px, Py : in Easy_X.Coordinate; Cote : Dimension) is begin Easy_X.Move_To (Px, Py); Easy_X.Line_To (Px + Cote, Py); Easy_X.Line_To (Px + Cote, Py + Cote); Easy_X.Line_To (Px, Py + Cote); Easy_X.Line_To (Px, Py); end Carre; procedure Draw_Ellipse (Ox : in Easy_X.Coordinate; Oy : in Easy_X.Coordinate; Base : in Dimension; Hauteur : in Dimension) is X : Easy_X.Coordinate; Y : Easy_X.Coordinate; Pas : Integer; begin X := Ox; Y := Oy; Pas := 0; Move_To (X + Base, Y); for I in 1 .. 90 loop Pas := Pas + 4; Y := Easy_X.Coordinate (Float (Oy) - Float (Hauteur) * (Elementary_Functions.Sin (Float (Pas) * 3.14116 / 180.0))); X := Easy_X.Coordinate (Float (Ox) + Float (Base) * (Elementary_Functions.Cos (Float (Pas) * 3.14116 / 180.0))); Line_To (X, Y); end loop; Move_To (Ox, Oy); end Draw_Ellipse; procedure Draw_Circle (Ox : in Easy_X.Coordinate; Oy : in Easy_X.Coordinate; Rayon : in Dimension) is X : Easy_X.Coordinate; Y : Easy_X.Coordinate; Pas : Integer; begin X := Ox; Y := Oy; Pas := 0; Move_To (X + Rayon, Y); for I in 1 .. 90 loop Pas := Pas + 4; Y := Easy_X.Coordinate (Float (Oy) - Float (Rayon) * (Elementary_Functions.Sin (Float (Pas) * 3.14116 / 180.0))); X := Easy_X.Coordinate (Float (Ox) + Float (Rayon) * (Elementary_Functions.Cos (Float (Pas) * 3.14116 / 180.0))); Line_To (X, Y); end loop; Move_To (Ox, Oy); end Draw_Circle; procedure Draw_Regular_Polygon (Ox : in Easy_X.Coordinate; Oy : in Easy_X.Coordinate; Segment : in Integer; Rayon : in Dimension) is X : Easy_X.Coordinate; Y : Easy_X.Coordinate; Pas : Integer; begin X := Ox; Y := Oy; Pas := 0; Move_To (X + Rayon, Y); for I in 1 .. Segment loop Pas := Pas + 360 / Segment; Y := Easy_X.Coordinate (Float (Oy) - Float (Rayon) * (Elementary_Functions.Sin (Float (Pas) * 3.14116 / 180.0))); X := Easy_X.Coordinate (Float (Ox) + Float (Rayon) * (Elementary_Functions.Cos (Float (Pas) * 3.14116 / 180.0))); Line_To (X, Y); end loop; Move_To (Ox, Oy); end Draw_Regular_Polygon; procedure Draw_Circle_Segment (Ox : in Easy_X.Coordinate; Oy : in Easy_X.Coordinate; Segment : in Integer; Rayon : in Dimension; Angle : in Integer) is X : Easy_X.Coordinate; Y : Easy_X.Coordinate; Pas : Integer; begin Pas := Angle; X := Easy_X.Coordinate (Float (Ox) + Float (Rayon) * (Elementary_Functions.Cos (Float (Pas) * 3.14116 / 180.0))); Y := Easy_X.Coordinate (Float (Oy) - Float (Rayon) * (Elementary_Functions.Sin (Float (Pas) * 3.14116 / 180.0))); Move_To (X, Y); for I in 1 .. Segment / 4 loop Y := Easy_X.Coordinate (Float (Oy) - Float (Rayon) * (Elementary_Functions.Sin (Float (Pas) * 3.14116 / 180.0))); X := Easy_X.Coordinate (Float (Ox) + Float (Rayon) * (Elementary_Functions.Cos (Float (Pas) * 3.14116 / 180.0))); Line_To (X, Y); Pas := Pas + 4; end loop; Move_To (Ox, Oy); end Draw_Circle_Segment; procedure Top_Cercle (Ox : in Easy_X.Coordinate; Oy : in Easy_X.Coordinate; Segment : in Integer; Rayon : in Dimension) is X : Easy_X.Coordinate; Y : Easy_X.Coordinate; Pas : Integer := 0; begin X := Ox; Y := Oy; Move_To (X + Rayon, Y); for I in 1 .. Segment loop Y := Easy_X.Coordinate (Float (Oy) - Float (Rayon) * (Elementary_Functions.Sin (Float (Pas) * 3.14116 / 180.0))); X := Easy_X.Coordinate (Float (Ox) + Float (Rayon) * (Elementary_Functions.Cos (Float (Pas) * 3.14116 / 180.0))); Move_To (X, Y); Draw_Regular_Polygon (X, Y, I + 2, 150); Pas := Pas + 360 / Segment; end loop; Move_To (Ox, Oy); end Top_Cercle; begin Easy_X.Open (Term, "My_X_Window", 0, 0, 1000, 1000); Set_Font (Small_Font); Draw_Ellipse (500, 500, 400, 200); Draw_Circle_Segment (500, 500, 90, 200, 0); Draw_Circle_Segment (500, 500, 45, 100, 90); Draw_Circle_Segment (500, 500, 180, 50, 180); -- Top_Cercle (500, 500, 8, 250); while (Next_Event /= Button_Down) loop X := X; end loop; Close; end Test_Eays_X;