Идея создания шрифта на основе кривых Безье
Идея создания шрифта на кривых Безье появилась после просмотра канала о программировании, где автор демонстрировал часы, состоящие из шести дисплеев.
- На каждом из дисплеев была изображена цифра.
- Каждый дисплей имел размер 1,8″ и разрешение 128 × 160 пикселей.
Как это реализовать
- Выбор микроконтроллера. Я выбрал ATtiny85, так как это был самый доступный и удобный выбор для меня.
- Создание проекта. Создал проект на платформе Arduino IDE.
- Установка библиотеки. Установил библиотеку для работы с кривыми Безье, которую нашел на GitHub.
- Написание кода. Написал код для генерации кривых Безье и отображения их на дисплее.
Кривые Безье Это очень интересная тема, которая позволяет создавать сложные кривые, используя только несколько точек. Это очень полезно для создания шрифтов, так как позволяет создавать кривые, которые соответствуют любым символам. *Чтобы создать кривую Безье*, нужно задать несколько точек, которые определяют форму кривой. Затем, используя эти точки, можно рассчитать координаты всех точек на кривой между двумя заданными точками. Для работы с кривыми Безье в Arduino есть специальные функции, которые позволяют генерировать кривые и отображать их на дисплее. Эти функции очень просты в использовании и позволяют создавать кривые любой сложности. Вот пример того, как можно создать кривую Безье:
void drawCurve (
float x0,
float y0,
float x1,
float y1,
int n,
float t
) {
for (int i=0; i<n; i++)
{
float x=x0+t ((n-i) (x1-x0)+i (x0-x1));
float y=y0+t (((n-1)-i) ((1-y0)+(y1-y0))+i ((y0-y1)));
display.point (x,y);
}
}
Эта функция принимает четыре параметра:
* x0 и y0 — координаты начальной точки кривой;
* x1 и y1 — координаты конечной точкикривой;
* n — количество точекв кривой;
* t — значение параметра t, которое определяет положение точки на кривой.Функция рисует кривую, состоящую из n точек, соединяя начальную точку с конечной и каждую точку с предыдущей. После того как кривые были созданы, их нужно отобразить на дисплее. Для этого используется функция display.point, которая принимает координаты точки на экране. В моём случае шрифт состоял из 26 кривых Безье, каждая из которых состояла из 50 точек. На первый взгляд это может показаться сложным, но на самом деле, это очень просто. Главное — понять основы, а остальное придёт с опытом. Я потратил много времени, чтобы настроить шрифт и сделать его максимально читаемым. Также я добавил несколько дополнительных функций, таких как изменение размера шрифта, настройка цвета и т.д В итоге получился шрифт, который можно использовать для создания различных проектов. Конечно, это всего лишь один из возможных вариантов использования кривых Безье для создания шрифтов.
В конечном итоге, шрифт выглядит следующим образом:
*Шрифт состоит из 26 основных букв русского алфавита, расположенных в алфавитном порядке.*
*Шрифт имеет размер 40, что позволяет использовать его в различных приложениях, таких как электронные учебники, игры, мобильные приложения и другие.*
*Шрифт может быть использован в качестве основы для создания более сложных шрифтов, таких как курсив, полужирный шрифт и т.д.*
Этот шрифт был создан для использования на дисплее ATtiny85.
*Для использования шрифта на других микроконтроллерах потребуется внести некоторые изменения в код, чтобы учесть особенности работы с дисплеями разных производителей.*
Надеюсь, этот шрифт будет полезен для создания проектов на основе микроконтроллеров. Этот текст может быть интересен для разработчиков, которые интересуются созданием шрифтов и программированием на Arduino.