DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦c5fc563e1⟧ TextFile

    Length: 6480 (0x1950)
    Types: TextFile
    Names: »B«

Derivation

└─⟦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⟧ 

TextFile

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;