Показано с 11 по 17 из 17

Тема: Rect

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию Rect

    Код:
    #===============================================================================
    # Rect
    # Класс, отвечающий за прямоугольник.
    #===============================================================================
    class Rect
      #-----------------------------------------------------------------------------
      # Предоставляет индексированный доступ на чтение к аттрибутам прямоугольника
      # 0 - Координата X левого верхнего угла прямоугольника.
      # 1 - Координата Y левого верхнего угла прямоугольника.
      # 2 - Ширина прямоугольника.
      # 3 - Высота прямоугольника.
      #-----------------------------------------------------------------------------
      def [](index)
        result = 0
        case index
        when 0; result = self.x
        when 1; result = self.y
        when 2; result = self.width
        when 3; result = self.height
        end
        return result
      end
      #-----------------------------------------------------------------------------
      # Предоставляет индексированный доступ на запись к аттрибутам прямоугольника
      # index :integer
      # 0 - Координата X левого верхнего угла прямоугольника.
      # 1 - Координата Y левого верхнего угла прямоугольника.
      # 2 - Ширина прямоугольника.
      # 3 - Высота прямоугольника.
      # value :integer
      #-----------------------------------------------------------------------------
      def []=(index, value)
        case index
        when 0; self.x = value
        when 1; self.y = value
        when 2; self.width = value
        when 3; self.height = value
        end
      end
      #-----------------------------------------------------------------------------
      # Очищает все значения прямоугольника
      #-----------------------------------------------------------------------------
      def clear
        self.x = 0
        self.y = 0
        self.width = 0
        self.height = 0
      end
      #-----------------------------------------------------------------------------
      # Определяет пуст ли прямоугольник
      # Возвращает :bool - true, если площадь <= 0 и false в противном случае
      #-----------------------------------------------------------------------------
      def empty?
        return (width <= 0 || height <= 0)
      end
      #-----------------------------------------------------------------------------
      # Вычисляет периметер прямоугольника
      # Возвращает :integer
      #-----------------------------------------------------------------------------
      def perimeter
        return 2 * width + 2 * height
      end
      #-----------------------------------------------------------------------------
      # Вычисляет площадь прямоугольника
      # Возвращает :integer
      #-----------------------------------------------------------------------------
      def square
        return width * height
      end
      #-----------------------------------------------------------------------------
      # Преобразует прямоугольник в одномерный массив
      # Возвращает :[i, i, i, i] - [x, y, ширина, высота]
      #-----------------------------------------------------------------------------
      def to_a
        return [self.x, self.y, self.width, self.height]
      end
      #-----------------------------------------------------------------------------
    end
    Последний раз редактировалось Equilibrium Keeper; 16.07.2011 в 10:53.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Rect