Создайте программу показывающую пульсирующее сердце

Создайте программу показывающую пульсирующее сердце

Бьющееся сердце на CSS ко Дню святого Валентина или просто без повода. Простая открытка с глубоким смыслом на чистых и незамутненных стилях.

CSS – очень простой язык с большим потенциалом. Если вы хоть самую малость разбираетесь в геометрии, то легко сможете превратить окно браузера в холст для собственных шедевров.

Хватит применять CSS только для работы. Используйте его в личных целях без всякого смущения! Сделайте хотя бы простую, но симпатичную валентинку для дорогого человека.

Создаем

Как сделать сердце на CSS из простейших геометрических фигур? Очень просто: достаточно двух кругов и одного квадрата, повернутого на 45 градусов.

В CSS мы легко можем обойтись одним контейнером – привлечем к делу псевдоселекторы :before и :after . Это псевдоэлементы, которые вроде есть, но нет. В HTML и DOM вы их не найдете, но если добавить стили, то на странице они появятся. :before вставляется перед контентом блока, а :after – после.

Таким образом, в HTML мы имеем один элемент:

А CSS вот такой:

Сам блок с классом heart – это квадрат, повернутый на 45 градусов против часовой стрелки с помощью свойства transform. Псевдоэлементы :before и :after – такие же квадраты, однако углы у них скруглены на 50%, поэтому выглядят они как круги. Взаиморасположение элементов обеспечивается с помощью абсолютного позиционирования.

Оживляем

Влюбленное сердце должно пылко биться, поэтому давайте добавим жизнь в наше творение.

На помощь спешит CSS-правило @keyframes , в котором можно определить один цикл анимации.

Нужно разделить все действие на отдельные шаги (занимающие определенный процент общего времени) и для каждого описать необходимую трансформацию. У нас будет 3 шага.

  1. Начинается все (0%) без трансформаций.
  2. На 20% от общего времени фигура достигает 125% от исходного размера.
  3. К 40% она увеличивается до 150%.
  4. Оставшиеся 60% времени происходит постепенное уменьшение до первоначального состояния.

Запустим наше сердце с помощью правила animation :

Это сердце на CSS будет биться вечно ( infinite ) – или столько, сколько длится ваша любовь 🙂

Желаем вам прекрасного Дня святого Валентина!

Название национальный исследовательский томский политехнический университет
Анкор Программирование на C# 11я версия.docx
Дата 12.12.2017
Размер 1.88 Mb.
Формат файла
Имя файла Программирование на C# 11я версия.docx
Тип Документы
#11174
страница 24 из 32
Подборка по базе: Национальный исследовательский университет.docx, Астана Медицина Университеті.docx, Министерство образования республики Башкортостан ГБПОУ Стерлитам, ФГБОУ ВО Иркутский государственный аграрный университет.docx, военные университеты.DOCX, СМОЛЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ.docx, История Финансового университета 1953–1964 гг. — копия.pptx, МЕДИЦИНСКИЙ УНИВЕРСИТЕТ КАРАГАНДЫ.docx, Қарағанды медицина университеті.docx, конспект для университета.docx

Индивидуальное задание

  1. Создайте программу, показывающую пульсирующее сердце.
  2. Создайте приложение, отображающее вращающийся винт самолета.
  3. Разработайте программу анимации двигающегося человечка.
  4. Создайте программу, показывающую движение окружности по синусоиде.
  5. Создайте приложение, отображающее движение окружности по спирали.
  6. Разработайте программу анимации падения снежинки.
  7. Создайте программу, показывающую скачущий мячик.
  8. Создайте приложение, отображающее движение окружности вдоль границы окна. Учтите возможность изменения размеров окна.
  9. Разработайте программу анимации летающего бумеранга.
  10. Создайте программу, показывающую падение нескольких звезд одновременно.
  11. Создайте приложение, отображающее хаотичное движение звезды в окне.
  12. Разработайте программу анимации взлета ракеты. Старт осуществляется по нажатию специальной «красной» кнопки.
  13. Создайте программу, показывающую движение окружности вдоль многоугольника. Число вершин вводится пользователем до анимации.
  14. Создайте приложение, отображающее броуновское движение молекулы в окне.
  15. Разработайте программу анимации движения планет в Солнечной системе.
  16. Создайте программу, показывающую движение квадратика по траектории, состоящей из 100 точек, и хранящихся в специальном массиве.
  17. Создайте приложение, имитирующие механические часы.
  18. Разработайте программу анимации падения несколько листков с дерева. Движение не должно быть линейным.
  19. Создайте программу, показывающую движение окружности по спирали с плавно изменяющейся скоростью.
  20. Создайте приложение, отображающее движение автомобиля с вращающимися колесами.

Лабораторная работа №12
Обработка изображений

12.1. Отображение графических файлов

Обычно для отображения точечных рисунков, рисунков из метафайлов, значков, рисунков из файлов в формате BMP, JPEG, GIF или PNG используется объект PictureBox, т.е. элемент управления PictureBox действует как контейнер для картинок. Можно выбрать изображение для вывода, присвоив значение свойству Image. Свойство Image может быть установлено в окне свойств или в коде программы, указывая на рисунок, который следует отображать.

Элемент управления PictureBox содержит и другие полезные свойства, в том числе свойство AutoSize, определяющее, будет ли изображение растянуто в элементе PictureBox, и SizeMode, которое может использоваться для растягивания, центрирования или увеличения изображения в элементе управления PictureBox.

Перед добавлением рисунка к элементу управления PictureBox в проект обычно добавляется файл рисунка в качестве ресурса 3 . После добавления ресурса к проекту можно повторно использовать его. Например, может потребоваться отображение одного и того же изображения в нескольких местах.

Необходимо отметить, что поле Image само является классом для работы с изображениями, у которого есть свои методы. Например, метод FromFile используется для загрузки изображения из файла. Кроме класса Image существует класс Bitmap, который расширяет возможности класса Image за счет дополнительных методов для загрузки, сохранения и использования растровых изображений. Так метод Save класса Bitmap позволяет сохранять изображения в разных форматах, а методы GetPixel и SetPixel позволяют получить доступ к отдельным пикселям рисунка.

12.2. Элементы управления OpenFileDialog и SaveFileDialog

Элемент управления OpenFileDialog является стандартным диалоговым окном. Он аналогичен диалоговому окну «Открыть файл» операционной системы Windows. Элемент управления OpenFileDialog позволяет пользователям просматривать папки личного компьютера или любого компьютера в сети, а также выбирать файлы, которые требуется открыть.

Для вызова диалогового окна для выбора файла можно использовать метод ShowDialog () который возвращает значение DialogResult . OK при корректном выборе. Диалоговое окно возвращает путь и имя файла, который был выбран пользователем в специальном свойстве FileName.

12.3. Простой графический редактор

Создайте приложение, реализующее простой графический редактор. Функциями этого редактора должны быть: открытие рисунка, рисование поверх него простой кистью, сохранение рисунка в другой файл. Для этого создайте форму и разместите на ней элементы управления Button и PictureBox (рис 12.1).

Рис. 12.1. Форма для графического редактора
В этом случае не понадобится из панели элементов размещать на форме элементы диалоговых окон OpenFileDialog и SaveFileDialog. Эти элементы будут порождены динамически в ходе выполнения программы с помощью конструктора. Например, так:
OpenFileDialog dialog = new OpenFileDialog();
Далее они будут вызываться с помощью метода ShowDialog () .

Для кнопок «Открыть» и «Сохранить» создайте свои обработчики события. Также создайте обработчик события Load для формы. Для элемента управления pictureBox 1 создайте обработчики события MouseDown, MouseMove. Код приложения будет выглядеть следующим образом:
// Глобальные переменные

private Point PreviousPoint , point ;

private Bitmap bmp;

private Pen blackPen;

private Graphics g ;
// Действия при загрузке формы

private void Form1_Load( object sender, EventArgs e)

blackPen = new Pen ( Color . Black , 4);

>
// Действия при нажатии кнопки загрузки изображения

private void button1_Click( object sender, EventArgs e)

// Описываем объект класса OpenFileDialog

OpenFileDialog dialog = new OpenFileDialog ();

// Задаем расширения файлов

dialog.Filter = "Image files (*.BMP, *.JPG, " +

// Вызываем диалог и проверяем выбран ли файл

if (dialog.ShowDialog() == DialogResult .OK)

// Загружаем изображение из выбранного файла

Image image = Image .FromFile(dialog.FileName);

int width = image.Width;

int height = image.Height;

// Создаем и загружаем изображение в формате bmp

bmp = new Bitmap (image, width, height);

// Записываем изображение в pictureBox 1

pictureBox 1. Image = bmp ;

// Подготавливаем объект Graphics для рисования

g = Graphics . FromImage ( pictureBox 1. Image );

>
// Действия при нажатии мышки в pictureBox 1

private void pictureBox1_MouseDown( object sender,

// Записываем в предыдущую точку текущие координаты

private void pictureBox1_MouseMove( object sender,

// Проверяем нажата ли левая кнопка мыши

if (e.Button == MouseButtons .Left)

// Запоминаем текущее положение курсора мыши

// Соеденяем линией предыдущую точку с текущей

g.DrawLine(blackPen, PreviousPoint, point);

// Текущее положение курсора — в PreviousPoint

// Принудительно вызываем перерисовку

pictureBox 1. Invalidate ();

>
// Действия при нажатии кнопки сохранения файла

private void button2_Click( object sender, EventArgs e)

// Описываем и порождаем объект savedialog

SaveFileDialog savedialog = new SaveFileDialog ();

// Задаем свойства для savedialog

savedialog . Title = "Сохранить картинку как . " ;

" PNG File (*. png )|*. png " ;

if (savedialog.ShowDialog() == DialogResult .OK)

string fileName = savedialog.FileName;

// Убираем из имени расширение файла

string strFilExtn = fileName.Remove(0,

// Сохраняем файл в нужном формате

System.Drawing.Imaging. ImageFormat .Bmp);

System.Drawing.Imaging. ImageFormat .Jpeg);

System.Drawing.Imaging. ImageFormat .Gif);

System.Drawing.Imaging. ImageFormat .Tiff);

System.Drawing.Imaging. ImageFormat .Png);

>
Далее добавим в проект кнопку для перевода изображения в градации серого цвета:
// Действия при нажатии кнопки перевода в градации серого

private void button3_Click( object sender, EventArgs e)

// Циклы для перебора всех пикселей на изображении

for ( int i = 0; i

for ( int j = 0; j

// Извлекаем в R значение красного цвета

int R = bmp.GetPixel(i, j).R;

// Извлекаем в G значение зеленого цвета

int G = bmp.GetPixel(i, j).G;

int B = bmp.GetPixel(i, j).B;

// Высчитываем среднее арифметическое

int Gray = ( R = G + B ) / 3;

// Переводим число в значение цвета.

// 255 – показывает степень прозрачности.

// Остальные значения одинаковы

Color p = Color .FromArgb(255, Gray, Gray,

// Записываем цвет в текущую точку

bmp.SetPixel(i, j, p);

// Вызываем функцию перерисовки окна

>
Данный код демонстрирует возможность обращения к отдельным пикселям. Цвет каждого пикселя хранится в модели RGB и состоит из трех составляющих: красного, зеленого и синего цвета, называемых каналами. Значение каждого канала может варьироваться в диапазоне от 0 до 255.

Эффект биения сердца на чистом CSS3

Как «нарисовать» хорошо всем знакомый символ сердца с помощью css3, показал на примере в одной из своих статей: «Рисуем сердце с помощью CSS3».
Сегодня хочу показать, как можно оживить это сердечко, добавив визуальный эффект биения. Для этого нам понадобится чуточку магии свойств CSS3 и несколько строк несложного кода. Анимация CSS при правильном её использовании порой вообще творит чудеса, это лишь один из самых простейших примеров её применения.
Подробно раскладывать весь фарш на составляющие не буду, вся база практически такая же, как в первом варианте, ну, а с анимацией будет нетрудно разобраться взглянув на исходники.

Сразу хочу предупредить, что сердечко смотрится во всей красе только на светлом фоне, тёмный фон выдаёт контуры наложения, что конечно же не есть хорошо, так что рисуем на светлом «холсте».

Смотрите пример, копайте исходники в онлайн-редакторе и если понравится, смело забирайте, может где и пригодится.

Как вы понимаете div-контейнер demo вам не нужен, использовал его только для примера, дабы разместить сердце строго по центру. Вам понадобится вот такая небольшая html-конструкция, для вывода сердечка на странице:

Буду всем признателен, если поддержите проект — добавив блог в исключения AdBlock и поделитесь ссылкой на запись в своих соц-сетях:

Ссылка на основную публикацию
Сколько заряжается iphone 5s
Каждый владелец современного смартфона ищет способ продлить срок жизни батареи на своем устройстве. Есть несколько советов и рекомендаций, как правильно...
Сколько держится вирус в организме
Если вчера на вас кашлянули на улице или пришлось долго общаться с больным коллегой, а сегодня вы чувствуете себя все...
Сколько заряжается iphone 5s
Каждый владелец современного смартфона ищет способ продлить срок жизни батареи на своем устройстве. Есть несколько советов и рекомендаций, как правильно...
Содержание имитовставки должно зависеть
Читайте также: Environment Canada [Електронний ресурс]. – Режим доступу : http://energy.gov/energysaver/energy-saver I ес – струм емітера складеного транзистора в режимі...
Adblock detector