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

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

Хранитель экрана / Новый класс Graph

  • Третий урок
    Создание класса Graph и перенос в него всех действий с графикой.
  • Дата отправки отчёта: 12 июля 2015 г.
  • Задание выполнено: за 1 час. 40 мин.
  • Чему научился: Создавать классы, приводить код к более структурированному виду.
  • Что было сложным: ООП все таки не совсем понятно.. может дело привычки, может надо было теорию почитать таки :)
  • Комментарии: Все таки кружок у меня неравномерно движется, хотя, понимаю, что должен равномерно. Может с компьютером что не так? Посмотрел нагрузку в диспетчере задач так там Хранитель экрана проходит как ScreenSaver.vshost.exe *32 жрет 12-13% процессора и занимаемая память скачет 12832КБ-14896КБ. Я, конечно, еще совсем никакой программист, но не слишком ли много для программы гоняющей по экрану кружок? 12% от процессора Core i5 3.4G - это как бы можно траекторию ракеты на Марс рассчитать, а тут кружок...  Прикладываю видео чтоб можно было оценить.. может я и правда тут не просыхаю совсем? :)
  • Видеозапись: https://www.dropbox.com/s/8z2dg92pev10x8p/SS_Video.wmv?dl=0
  • Оценка видео-уроку:
Отчёт от 5244 за Хранитель экрана / Новый класс Graph




Оцени работу

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

5244. Олег
Олег
ответить
# Хранитель экрана / Хранитель экрана. Новый класс Graph / 2015-07-12 15:42

Вы будете смеяться, но вынос формы за пределы экрана абсолютно не влияет на загрузку, как показал только что проделанный мной эксперимент. :) Таймер на 25... и на 5 ставил и на 50 и на 100... везде примерно одно и тоже, заметность только чуть иная.


1. Евгений Витольдович
Евгений Витольдович
ответить
→  Олег  # Хранитель экрана / Хранитель экрана. Новый класс Graph / 2015-07-12 11:27

Мы же не занимались еще оптимизацией.


1726. Наталия
Наталия
ответить
→  Олег  # Хранитель экрана / Хранитель экрана. Новый класс Graph / 2015-07-12 11:21

Что касается неравномерности: скорее всего, нужно подкрутить таймер обновления формы: 25 мс вместо 100 мс, что по умолчанию, и пропорционально уменьшить скорость.


1726. Наталия
Наталия
ответить
→  Олег  # Хранитель экрана / Хранитель экрана. Новый класс Graph / 2015-07-12 11:13

На самом деле, не такая уж это и простая задачка - перерисоывать по несколько раз в секунду картинку большой площади.
В полете на Марс высчитывается какая-нибудь формула с сотней переменных, а тут над - над десятками тысяч точек выполняется множество битовых операций.
Что ресурс уходит на перерисовку можешь убедиться сам: частично вытащи форму за пределы рабочего стола - и увидишь, что Windows поняла, что скрытую часть экрана ей рисовать не надо, и ресурсов на перериросвку видимой пользователю части формы будет затрачено меньше.
Крутые видеоигры не так тормозят процесс т.к. там не происходит перерисовки всего экрана от левого верхнего пикселя до правого нижнего, а обновляется только изменившаяся часть.


5244. Олег
Олег
ответить
# Хранитель экрана / Хранитель экрана. Новый класс Graph / 2015-07-12 08:33

Нет, не запись... я заметил до записи. Но даже если комп перегружен, вроде как не должна бы такая программа 12% просить у проца, не для БК-0010 программы то пишем :)


986. Антон Лазарец
Антон Лазарец
ответить
→  Олег  # Хранитель экрана / Хранитель экрана. Новый класс Graph / 2015-07-12 07:58

Олег, может запись притормаживает его?


  • Отчёт оценивали:
    5344Владимир+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Понемногу начал осваивать рефакторинг.
Трудности: Сложностей не возникло.
Замечаний нет.
Научился: Повторил создание классов, наследование, полиморфизм, рефакторинг. Создавать более компактный, структурированный код.
Трудности: Все понятно)
Очень нравится эта серия уроков - коротенькие, но в них концентрированно и подробно излагается этапы создания профессионального кода.