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

Формула программиста
основатель — Волосатов Евгений Витольдович

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

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

    Вопрос для перехода к следующему уроку:
    Что нужно изменить в этой программе, чтобы мы могли
    а) перемещать снеговика;
    б) поворачивать снеговика;
    в) изменять размер снеговика.
  • Дата отправки отчёта: 1 мая 2015 г.
  • Задание выполнено: за 2 час. 00 мин.
  • Чему научился: Закрепил предыдущие навыки, готовился новизне на следующих уроках
  • Что было сложным: А вот в этом уроке из курса ООП и начались сложности: не просто писать код и слушать объяснения учителя, но еще и над ответом на вопрос думать. Вопрос не так прост, как кажется. С налета не решить. Вот для меня ответ на вопрос, который был бы оптимальным решением в тех условиях, которые есть, - и был наибольшей сложностью.
  • Комментарии: Выложу свои мысли по поводу движения, вращения и масштабирования снеговика на момент записи урока и после размышления "постскриптум" (исходя из того, что есть у нас, без применения тех примочек ООП, которые мы не учили):
    1) Инициализацию снеговика надо выделить в отдельный класс, в который передавать все точки.
    2) Для перемещения снеговика - в функцию прорисовки нового класса передать точки, смещенные по X или по Y
    3) Вращение - частный случай перемещения верхней части снеговика в одну сторону, нижней - в другую при неподвижном центре
    4) по поводу масштабирования ничего в голову не пришло кроме как вывести снеговиков на отдельные pictureBox'ы и изменения размеров каждого
  • Оценка видео-уроку:
Отчёт от 791 за Теория ООП / Второй Снеговик




Оцени работу

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

1. Евгений Витольдович
Евгений Витольдович
ответить
→  Валерий  # Теория ООП / Второй Снеговик / 2015-05-01 09:19

Молодец, Валерий, очень ответственно подошёл к заданию.
(извини, не туда посмотрел)


  • Отчёт оценивали:
    7319Alpinist573+1  

Начинаем практику по языку 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), которые устанавливают абсолютные значения необходимых полей.
Научился: закрепил изученное
Трудности: ответить на три вопроса
как поворачивать, я точный ответ не знаю, гадать не буду. перемещать вроде как нужно сделать, чтобы рисунок создавался относительно некоей точки, которую двигай - и будет все двигаться чтобы увеличивать, уменьшать - нужно все точки выразить через переменные, связанные с размером прямоугольника, в который помещается весь рисунок.