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

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

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

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




Оцени работу

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

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

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


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

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


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

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


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

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


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

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


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

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



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





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.


Научился: 1) разбивать код программы на разные классы для упрощения кода. 2) использовать рефакторинг
Трудности: какие методы и свойства вынести из кода формы в класс Graph и как передавать данные между ними.
хороший урок)


Научился: Создавать классы и структурировать программу
Трудности: Определить, какие данные и методы поместить в класс и как реализовывать их вызовы из кода основной программы
Хотелось бы немного больше последовательности в изложении материала. (Это по поводу постоянных исправлений ошибок)