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

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

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

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

    Вопрос для перехода к следующему уроку:
    Что нужно изменить в этой программе, чтобы мы могли
    а) перемещать снеговика;
    б) поворачивать снеговика;
    в) изменять размер снеговика.
  • Дата отправки отчёта: 22 апреля 2015 г.
  • Задание выполнено: за 20 мин.
  • Чему научился: использовать наследование
  • Что было сложным: ничего
  • Комментарии: 1. Чтобы перемещать фигуру, нужно прибавлять к одной из координат величину дельта: x'=x+dx или y'=y+dy или к обеим сразу.
    2. Чтобы вращать фигуру, нужно каждую координату  умножить на соответствующую компоненту матрицы поворота:
    x' = xcos(a) +(-) ysin(a), y'=xsin(a)+(-) ysin(a).
    3. Чтобы увеличить (уменьшить) фигуру, нужно увеличить (уменьшить) радиус, если фигура - окружность, диагональ (если фигура - бокс), длину линии (если фигура - линия).
  • Оценка видео-уроку:
Отчёт от 1803 за Теория ООП / Второй Снеговик




Оцени работу

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

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

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




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

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

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

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