|
|
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 - metrics - 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;