LoveRead.info » Книги » Разная литература » Интернет-журнал "Домашняя лаборатория", 2007 №9 - Журнал «Домашняя лаборатория»

Интернет-журнал "Домашняя лаборатория", 2007 №9 - Журнал «Домашняя лаборатория»

Книгу Интернет-журнал "Домашняя лаборатория", 2007 №9 - Журнал «Домашняя лаборатория» читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

298 0 18:01, 17-10-2023

Книга Интернет-журнал "Домашняя лаборатория", 2007 №9 - Журнал «Домашняя лаборатория» читать онлайн бесплатно без регистрации

Большой и увлекательный, научно-прикладной, образовательный, некоммерческий интернет-журнал, созданный группой энтузиастов. Журнал содержит материалы, найденные в Интернет или написанные для Интернет. Основная тематика статей — то, что можно сделать самому, от садовых поделок до сверхпроводников, но есть и просто полезные материалы.

    1 ... 397 398 399 400 401 402 403 404 405 ... 415
    Перейти на страницу:
    Shapes

    {

       /// <summary>

       /// Класс Ellipse — потомок класса Figure.

       /// </summary>

       public class Ellipse: Figure

       {

           int axisA,axisB;

           Rectangle rect;

           public Ellipse (int A, int B, int x, int у): base(x,у)

           {

               axisA = A; axisB = B;

               rect =Init();

           }

           public override void Show(Graphics g, Pen pen, Brush brush)

           {

                rect = Init();

                g. DrawEllipse(pen,rect);

                g. FillEllipse (brush, rect);

            }

            public override Rectangle Region_Capture()

            {

                 rect = Init ();

                 return rect;

            }

            Rectangle Init()

            {

                 int a =Convert.ToInt32(axisA*scale);

                 int b =Convert.ToInt32 (axisB*scale);

                 int leftupX = center.X — a;

                 int leftupY = center.Y — b;

                 return (new Rectangle(leftupX,leftupY,2*a,2*b));

             }

        }

    }

    Класс Circle

    Этот класс является потомком класса Ellipse:

    using System;

    using System.Drawing;

    namespace Shapes

    {

       /// <summary>

       /// Класс Circle — потомок класса Ellipse.

       /// </summary>

       public class Circle: Ellipse

       {

            public Circle (int radius,int x, int y):base(radius,radius,x,y)

            {

            // Круг — это эллипс с равными полуосями (радиусом круга)

            }

        }

    }

    Здесь опять-таки проявляется мощь наследования. Потомок наследует все свойства и методы родителя. Ему остается только указать собственный конструктор объектов класса, да и в нем главное состоит в вызове конструктора родительского класса с передачей ему нужных аргументов.

    Класс LittleCircle

    Этот класс, задающие маленькие кружочки фиксированного радиуса, в свою очередь, является наследником класса Circle. Устроен он также чрезвычайно просто:

    using System;

    namespace Shapes

    {

       /// <summary>

       /// Класс LittleCircle — потомок класса Circle.

       /// </summary>

       public class LittleCircle: Circle

       {

            public LittleCircle(int x,int y): base(4,x,y)

            {

                // маленький круг радиуса 4

            }

       }

    }

    Класс Rect

    Этот класс является еще одним прямым потомком класса Figure:

    using System;

    using System.Drawing;

    namespace Shapes

    {

       /// <summary>

       /// Класс Rect — потомок класса Figure.

       /// </summary>

       public class Rect: Figure

       {

           int sideA, sideB;

           Rectangle rect;

           public Rect(int sideA,int sideB, int x, int y): base(x,y)

           {

               this.sideA = sideA; this.sideB = sideB;

               rect =Init();

           }

            public override void Show(Graphics g, Pen pen, Brush brush)

           {

                rect = Init ();

                g. DrawRectangle(pen,rect);

                g. FillRectangle(brush,rect);

           }

             public override Rectangle Region_Capture()

           {

                 rect = Init ();

                 return rect;

           }

           Rectangle Init()

           {

                 int a =Convert.ToInt32(sideA*scale);

                 int b =Convert.ToInt32(sideB*scale);

                 int leftupX = center.X — a/2;

                 int leftupY = center.Y — b/2;

                 return (new Rectangle(leftupX,leftupY,a,b));

            }

        }

    }

    Класс Square

    Квадрат — это частный случай прямоугольника. Соответствующий класс является потомком класса Rect:

    using System;

    namespace Shapes

    {

        /// <summary>

        /// Класс Square — потомок класса Rect.

        /// </summary>

        public class Square: Rect

        {

             public Square(int side, int x, int y): base(side,side,x,у)

             {

                  //квадрат — это прямоугольник с равными сторонами

             }

        }

    }

    Класс Person

    Этот класс является прямым потомком класса Figure. Вместе с тем, класс является клиентом трех других классов семейства — Circle, Rect и LittleCircle, поскольку элементы фигуры, составляющие человечка, являются объектами этих классов%

    namespace Shapes

    {

       /// <summary>

       /// Класс Person — потомок класса Figure,

       /// клиент классов Circle, Rect, LittleCircle.

       /// </summary>

       public class Person: Figure

       {

           int head_h;

           Circle head;

           Rect body;

           LittleCircle nose;

           public Person (int head_h, int x, int y): base(x,y)

           {

               // head_h — радиус головы, x,y — ее центр.

               // остальные размеры исчисляются относительно

               // размера головы.

               this.head_h = head_h;

               head = new Circle(head_h,x,у);

               int body_x = x;

               int body_y = у + 3*head_h;

               int body_w =2*head_h;

               int body_h = 4*head_h;

               body = new Rect(body_w, body_h, body_x,body_y);

               nose = new LittleCircle (x+head_h +2, y);

           }

           public override void Show(System.Drawing.Graphics g,

               System.Drawing.Pen pen, System.Drawing.Brush brush)

           {

               int h = Convert.ToInt32(head_h*scale);

               //head

               int top_x = center.X — h;

               int top_y = center.Y — h;

               g. DrawEllipse(pen, top_x,top_y, 2*h,2*h);

               g. FillEllipse(brush, top_x,top_y, 2*h,2*h);

               //body

               top_y += 2*h;

               g. DrawRectangle(pen, top_x,top_y, 2*h,4*h);

               g. FillRectangle(brush, top_x,top_y, 2*h,4*h);

               //nose

               top_y — =h; top_x += 2*h;

               g. DrawEllipse(pen, top_x,top_y, 8,8);

               g. FillEllipse(brush, top_x,top_y, 8,8);

           }

           public override System.Drawing.Rectangle

               Region_Capture()

           {

               int h = Convert.ToInt32(head_h*scale);

               int top_x = center.X — h;

               int top_y = center.Y — h;

               return new

                     System.Drawing.Rectangle(top_x,top_y,2*h,2*h);

           }

       }

    }

    Список с курсором. Динамические структуры данных

    Добавим в проект классы, задающие динамические структуры данных. Конечно, можно было бы воспользоваться стандартными… Но для обучения крайне полезно уметь создавать собственные задающие такие структуры данных. Список с курсором — один из важнейших образцов подобных классов:

    using System;

    namespace Shapes {

       /// <summary>

       /// Класс TwoWayList(G) описывает двусвязный список с

    1 ... 397 398 399 400 401 402 403 404 405 ... 415
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


    Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Валентина Валентина04 июль 13:25 Большое спасибо за интересную тему.  Сюжет заманчиввй,интересный. Жду продолжения ... Лекарь Фамильяров. Том 7 - Александр Лиманский
    2. Наталья По Наталья По01 июль 10:12 Ужасный перевод:(... Аркадия - Эрин Дум
    3. Вика Вика29 июнь 21:56 Какая хрень с первых строк.  У ребенка в 14 месяце не может быть черепно мозговой травмы при падании с дивана ... Вернуть семью любой ценой - Чарли Ви
    Все комметарии
    Новинки бесплатной онлайн библиотеки