Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович
Видео про Архитектуру Шахматного клиент-сервера.

Теория ООП / Второй Снеговик

  • На этом уроке мы создадим второй спрайт -
    ещё одного снеговика, но разноцветного.

    Вопрос для перехода к следующему уроку:
    Что нужно изменить в этой программе, чтобы мы могли
    а) перемещать снеговика;
    б) поворачивать снеговика;
    в) изменять размер снеговика.
  • Дата отправки отчёта: 18 июля 2016 г.
  • Задание выполнено: за 20 мин.
  • Чему научился: Делать разноцветного снеговика.
    Я предполагаю что для того чтобы упростить задачу по управлению снеговиком было бы правильным написать класс, который будет рисовать этого снеговика.
    В конструкторе класса необходимо будет указать некую точку от которой будет рисоваться снеговик и ширину и высоту требуемого изображения. Все остальные величины должны рассчитываться внутри класса.
  • Что было сложным: всё просто, кроме ответа на поставленные вопросы
  • Комментарии: всё отлично.
  • Оценка видео-уроку:
Отчёт от 10670 за Теория ООП / Второй Снеговик




Оцени работу

 
Сохранить страницу:

1. Евгений Волосатов
Евгений Волосатов
ответить
→  Сергей Соколов  # Теория ООП / Второй Снеговик / 2016-07-19 15:43

Совершенно правильные выводы, Сергей.



Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Добавил второго снеговика, путем смещения координат 'x' базовых точек первого снеговика.
Трудности: Сложностей не было.
Для начала, для удобства, можно создать класс SnowMan, где, в качестве полей определены: x, y - координаты верхнего-левого угла снеговика; angle_x, angle_y - текущие углы поворота снеговика относительно осей x, y; scale_x, scale_y - коэффициенты масштабирования относительно осей x, y. 1) для перемещения можно добавить функцию move(int dx, int dy) {x += dx; y += dy;} 2) для поворота можно добавить функцию rotate(int rx, int ry) { angle_x += rx; angle_y += ry; } 3) для изменения размеров можно добавить функцию scale(int sx, int sy) {scale_x *= sx; scale_y *= sy;} Кроме того, можно добавить функции set_position(int x, int y), set_rotation(int rx, int ry), set_scale(int sx, int sy), которые устанавливают абсолютные значения необходимых полей.
Трудности: Ответить на вопросы.
3. Сделать для снеговика отдельный класс. Параметры снеговика будут ограничиваться верхней левой и нижней правой точками. 1. Ввести "точку центра" с координатами 0,0,0. Для перемещения по осям x и y изменять первый и второй параметр нашей точки. Путем добавления к координатам этих параметров. 2. Для поворота использовать третий параметр. Где мы будем по теореме косинусов или синусов (т.к. знаем длины сторон "каркаса" снеговика и угол между ними) или по координатам определять все точки. Это если я правильно понял вопрос про поворот.