//===================================================
begin
Код: Выделить всё
C++ Prototype uint8_t U8GLIB::begin(void)
C Prototype uint8_t u8g_Begin(u8g_t *u8g)
Описание
Сбросьте отображение и поместите его в состояние по умолчанию.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
Возвращает:
0, если процедура init не выполняется.
Использование:
Внешний контур изображения.
//===================================================
disableCursor
Код: Выделить всё
C ++ Prototype void U8GLIB :: disableCursor (void)
C Prototype void u8g_DisableCursor (u8g_t * u8g)
Описание
Отключите курсор. Курсор не будет виден.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
Использование:
Внешний контур изображения.
//===================================================
- draw...
- drawBitmap
drawBitmapPКод: Выделить всё
C++ Prototype void U8GLIB::drawBitmap(u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap) void U8GLIB::drawBitmapP(u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap)
C Prototype void u8g_DrawBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap) void u8g_DrawBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap)
Описание
Нарисуйте растровое изображение в указанной позиции x / y (верхний левый угол растрового изображения). Части растрового изображения могут находиться за пределами границ дисплея. Растровое изображение определяется растровым массивом. Очищенный бит означает: Не нарисуйте пиксель. Установленный бит внутри массива означает: Пишет пиксель с текущим индексом цвета. Для монохромного дисплея индекс цвета 0 обычно очищает пиксель, а индекс цвета 1 устанавливает пиксель.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x: X-позиция (левая позиция растрового изображения).
y: Y-позиция (верхнее положение растрового изображения).
cnt: количество байтов растрового изображения в горизонтальном направлении. Ширина растрового изображения - cnt * 8.
h: Высота растрового изображения.
Использование:
Внутренний контур изображения.
Пример:Код: Выделить всё
U8GLIB_PCD8544 u8g (13, 11, 10, 9, 8); // Связь SPI: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8
const uint8_t rook_bitmap [] U8G_PROGMEM = {0x00, // 00000000 0x55, // 01010101 0x7f, // 01111111 0x3e, // 00111110 0x3e, // 00111110 0x3e, // 00111110 0x3e, // 00111110 0x7f // 01111111};
void draw (void) {// здесь должны быть размещены графические команды для перерисовки полного экрана
u8g.drawBitmapP (0, 0, 1, 8, rook_bitmap); }
void setup (void) {}
void loop (void) {// picture loop u8g.firstPage ();
do {draw (); } while (u8g.nextPage ());
// перестраиваем изображение после задержки
delay(1000); }
//===================================================
drawBoxКод: Выделить всё
C ++ Prototype void U8GLIB :: drawBox (u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h)
C Прототип void u8g_DrawBox (u8g_t * u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h)
Описание
Нарисуйте коробку (заполненную рамку), начиная с положения x / y (верхний левый край). Коробка имеет ширину w и высоту h. Части коробки могут находиться за пределами границ дисплея. Эта процедура использует текущий индекс цвета для рисования окна. Для монохромного дисплея индекс цвета 0 обычно очищает пиксель, а индекс цвета 1 устанавливает пиксель.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x: положение X верхнего левого края.
y: Y-положение верхнего левого края.
w: Ширина окна.
h: Высота коробки.
Использование:
Внутренний контур изображения.
Пример:Код: Выделить всё
U8GLIB u8g (...) ... u8g.drawBox (10,12,20,30);
//===================================================
DrawCircleКод: Выделить всё
C ++ Prototype void U8GLIB :: drawCircle (u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t opt = U8G_DRAW_ALL)
C Prototype void u8g_DrawCircle (u8g_t * u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t opt)
Описание
Нарисуйте круг с радиусом rad в позиции (x0, y0). Диаметр круга равен 2 * rad + 1. В зависимости от opt можно рисовать только некоторые участки круга. Возможные значения для opt: U8G_DRAW_UPPER_RIGHT, U8G_DRAW_UPPER_LEFT, U8G_DRAW_LOWER_LEFT, U8G_DRAW_LOWER_RIGHT, U8G_DRAW_ALL. Эти значения могут быть объединены с | оператор.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x0, y0: Расположение центра круга.
rad: Определяет размер круга: Radus = rad.
opt: выбор некоторых или всех разделов круга.
U8G_DRAW_UPPER_RIGHT
U8G_DRAW_UPPER_LEFT
U8G_DRAW_LOWER_LEFT
U8G_DRAW_LOWER_RIGHT
U8G_DRAW_ALL
Использование:
Внутренний контур изображения.
Пример:Код: Выделить всё
u8g.drawCircle (20, 20, 14);
u8g.drawCircle (20, 20, 14, U8G_DRAW_UPPER_RIGHT);
//===================================================
drawDiscКод: Выделить всё
C ++ Prototype void U8GLIB :: drawDisc (u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t opt = U8G_DRAW_ALL)
C Prototype void u8g_DrawDisc (u8g_t * u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t opt)
Описание
Нарисуйте заполненный круг радиусом rad в позиции (x0, y0). Диаметр круга равен 2 * rad + 1. В зависимости от opt можно рисовать только некоторые разделы диска. Возможные значения для opt: U8G_DRAW_UPPER_RIGHT, U8G_DRAW_UPPER_LEFT, U8G_DRAW_LOWER_LEFT, U8G_DRAW_LOWER_RIGHT, U8G_DRAW_ALL. Эти значения могут быть объединены с | оператор.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x0, y0: Положение центра заполненного круга.
rad: Определяет размер диска: Radus = rad.
opt: выбор некоторых или всех разделов круга.
U8G_DRAW_UPPER_RIGHT
U8G_DRAW_UPPER_LEFT
U8G_DRAW_LOWER_LEFT
U8G_DRAW_LOWER_RIGHT
U8G_DRAW_ALL
Использование:
Внутренний контур изображения.
//===================================================
drawEllipseКод: Выделить всё
C++ Prototype void U8GLIB::drawEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t opt)
C Prototype void u8g_DrawEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t opt)
Описание
Нарисуйте эллипс с radus rx и 'ry' в позиции (x0, y0). rx * ry должно быть ниже 1024 в 8-битном режиме u8glib. В зависимости от opt можно рисовать только некоторые разделы диска. Возможные значения для opt: U8G_DRAW_UPPER_RIGHT, U8G_DRAW_UPPER_LEFT, U8G_DRAW_LOWER_LEFT, U8G_DRAW_LOWER_RIGHT, U8G_DRAW_ALL. Эти значения могут быть объединены с | оператор.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x0, y0: Положение центра заполненного круга.
rx, rx: Определяет размер эллипса.
opt: выбор некоторых или всех разделов эллипса.
U8G_DRAW_UPPER_RIGHT
U8G_DRAW_UPPER_LEFT
U8G_DRAW_LOWER_LEFT
U8G_DRAW_LOWER_RIGHT
U8G_DRAW_ALL
Использование:
Внутренний контур изображения.
//===================================================
drawFilledEllipseКод: Выделить всё
C++ Prototype void U8GLIB::drawFilledEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t opt)
C Prototype void u8g_DrawFilledEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t opt)
Описание
Нарисуйте заполненный эллипс с radus rx и 'ry' в позиции (x0, y0). rx * ry должно быть ниже 1024 в 8-битном режиме u8glib. В зависимости от opt можно рисовать только некоторые разделы диска. Возможные значения для opt: U8G_DRAW_UPPER_RIGHT, U8G_DRAW_UPPER_LEFT, U8G_DRAW_LOWER_LEFT, U8G_DRAW_LOWER_RIGHT, U8G_DRAW_ALL. Эти значения могут быть объединены с | оператор.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x0, y0: Положение центра заполненного круга.
rx, rx: Определяет размер эллипса.
opt: выбор некоторых или всех разделов эллипса.
U8G_DRAW_UPPER_RIGHT
U8G_DRAW_UPPER_LEFT
U8G_DRAW_LOWER_LEFT
U8G_DRAW_LOWER_RIGHT
U8G_DRAW_ALL
Использование:
Внутренний контур изображения.
//===================================================
drawFrameКод: Выделить всё
C++ Prototype void U8GLIB::drawFrame(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h)
C Prototype void u8g_DrawFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h)
Описание
Нарисуйте рамку, начиная с позиции x / y (верхний левый край). Рама имеет ширину w и высоту h. Части кадра могут находиться за пределами границ дисплея. Эта процедура использует текущий индекс цвета для рисования строк кадра. Для монохромного дисплея индекс цвета 0 обычно очищает пиксель, а индекс цвета 1 устанавливает пиксель.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x: положение X верхнего левого края.
y: Y-положение верхнего левого края.
w: Ширина рамки.
h: Высота рамки.
Использование:
Внутренний контур изображения.
Пример:Код: Выделить всё
U8GLIB u8g (...) ... u8g.drawFrame (10,12,30,20);
//===================================================
drawHLineКод: Выделить всё
C++ Prototype void U8GLIB::drawHLine(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w)
C Prototype void u8g_DrawHLine(u8g_t *u8g, uint8_t x, uint8_t y, u8g_uint_t w)
Описание
Нарисуйте горизонтальную линию, начиная с позиции x / y (левый край). Ширина линии - w пикселей. Части линии могут находиться за пределами границ дисплея. Эта процедура использует текущий индекс цвета для рисования линии. Для монохромного дисплея индекс цвета 0 обычно очищает пиксель, а индекс цвета 1 устанавливает пиксель.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x: X-позиция.
y: Y-позиция.
w: Ширина горизонтальной линии.
Использование:
Внутренний контур изображения.
//===================================================
drawLineКод: Выделить всё
C++ Prototype void U8GLIB::drawLine(u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2)
C Prototype void u8g_DrawLine(u8g_t *u8g, u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2)
Описание
Нарисуйте линию от (x1, y1) до (x2, y2). На конечной конечной позиции начала нет ограничений. Эта процедура использует текущий индекс цвета для рисования линии. Для монохромного дисплея индекс цвета 0 обычно очищает пиксель, а индекс цвета 1 устанавливает пиксель.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x1, y1: начальное положение.
x2, y2: Конечное положение.
Использование:
Внутренний контур изображения.
Пример:Код: Выделить всё
u8g.drawLine (7, 10, 40, 55);
//===================================================
drawPixelКод: Выделить всё
C++ Prototype void U8GLIB::drawPixel(uint8_t x, uint8_t y)
C Prototype void u8g_DrawPixel(u8g_t *u8g, uint8_t x, uint8_t y)
Описание
Нарисуйте пиксель в указанной позиции x / y. Положение (0,0) находится в верхнем левом углу дисплея. Позиция может находиться вне границ отображения. Эта процедура использует текущий индекс цвета для рисования пикселя. Для монохромного дисплея индекс цвета 0 обычно очищает пиксель, а индекс цвета 1 устанавливает пиксель.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x: X-позиция.
y: Y-позиция.
Использование:
Внутренний контур изображения.
Пример:Код: Выделить всё
U8GLIB u8g (...) ... u8g.drawPixel (14,23);
//===================================================
drawRBox
drawRFrameКод: Выделить всё
C++ Prototype void U8GLIB::drawRBox(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) void U8GLIB::drawRFrame(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r)
C Prototype void u8g_DrawRBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) void u8g_DrawRFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r)
Описание
Нарисуйте коробку / рамку с круглыми краями, начиная с позиции x / y (верхний левый край). Коробка / рама имеет ширину w и высоту h. Части коробки могут находиться за пределами границ дисплея. Края имеют радиус r. Требуется, чтобы w> = 2 * (r + 1) и h> = 2 * (r + 1). Это условие не проверяется. Поведение не определено, если w или h меньше, чем 2 * (r + 1). Эта процедура использует текущий индекс цвета для рисования окна. Для монохромного дисплея индекс цвета 0 обычно очищает пиксель, а индекс цвета 1 устанавливает пиксель.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x: положение X верхнего левого края.
y: Y-положение верхнего левого края.
w: Ширина окна.
h: Высота коробки.
r: Радиус для четырех ребер.
Использование:
Внутренний контур изображения.
//===================================================
drawStr
drawStr90
drawStr180
drawStr270
drawStrP
drawStr90P
drawStr180P
drawStr270PКод: Выделить всё
C++ Prototype u8g_uint_t U8GLIB::drawStr(u8g_uint_t x, u8g_uint_t y, const char *s) u8g_uint_t U8GLIB::drawStr90(u8g_uint_t x, u8g_uint_t y, const char *s) u8g_uint_t U8GLIB::drawStr180(u8g_uint_t x, u8g_uint_t y, const char *s) u8g_uint_t U8GLIB::drawStr270(u8g_uint_t x, u8g_uint_t y, const char *s) u8g_uint_t U8GLIB::drawStrP(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) u8g_uint_t U8GLIB::drawStr90P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) u8g_uint_t U8GLIB::drawStr180P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) u8g_uint_t U8GLIB::drawStr270P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s)
C Prototype u8g_uint_t u8g_DrawStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); u8g_uint_t u8g_DrawStr90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); u8g_uint_t u8g_DrawStr180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); u8g_uint_t u8g_DrawStr270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); u8g_uint_t u8g_DrawStrP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); u8g_uint_t u8g_DrawStr90P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); u8g_uint_t u8g_DrawStr180P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); u8g_uint_t u8g_DrawStr270P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s);
Описание
Рисует строку в указанной позиции x / y. Положение x / y - это нижний левый угол первого символа строки. Требуется присвоить шрифт процедурой setFont до первого вызова этой процедуры. Эта процедура также использует текущий индекс цвета для рисования символов. Для монохромного дисплея индекс цвета 0 обычно очищает пиксель, а индекс цвета 1 устанавливает пиксель. (Х, у) аргументы зависит от режима расчета контрольной точки (setFontPosBaseline). Вариант «P»: предполагается, что s указывает на строку в области PROGMEM. Варианты '90', '180', '270': Поворот строки на 90, 180 или 270 градусов.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x: X-позиция.
y: Y-позиция.
s: Указатель на C-строку (завершается с помощью \ 0).
Возвращает:
Ширина строки s в пикселе.
Использование:
Внутренний контур изображения.
Заметка:
Среда C ++ Arduino также предлагает более мощную процедуру печати.
Пример:Код: Выделить всё
U8GLIB u8g (...) ... u8g.setFont (u8g_font_osb18); u8g.drawStr (0, 20, "ABC");
Исходная точка (0,20) для начала текстовой строки обычно составляет один пиксель ниже нижнего левого края первого символа.
Высота заглавных букв отображается в растровом изображении обзора шрифта (в этом примере 18).
В некоторых случаях размер заглавных букв также является частью имени шрифта.
//===================================================
drawTriangleC++ Prototype void U8GLIB::drawTriangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2)Код: Выделить всё
C Prototype void u8g_DrawTriangle(u8g_t *u8g, uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2)
Описание
Нарисуйте треугольник (заполненный многоугольник). Аргументы 16 бит, а полигон обрезается до размера дисплея. Несколько полигонов рисуются так, что они точно совпадают без перекрытия: левая сторона многоугольника нарисована, правая сторона не является ничьей. Верхняя сторона - только вытяжка, если она плоская. В приведенном ниже примере изображение пикселя в (9,43) нарисовано полигональными процедурами, но пиксели (14,9) и (45,32) не рисуются.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x0: точка X-позиции 0.
y0: Точка Y-позиции 0.
x1: точка X-позиции 1.
y1: точка Y-позиции 1.
x2: точка X-позиции 2.
y2: точка Y-позиции 2.
Использование:
Внутренний контур изображения.
Пример:Код: Выделить всё
U8GLIB u8g (...) ... u8g.drawTriangle (14,9, 45,32, 9,42); u8g.drawTriangle (14,55, 45,33, 9,43);
//===================================================
drawVLineКод: Выделить всё
C++ Prototype void U8GLIB::drawVLine(u8g_uint_t x, u8g_uint_t y, u8g_uint_t h)
C Prototype void u8g_DrawVLine(u8g_t *u8g, uint8_t x, uint8_t y, u8g_uint_t h)
Описание
Нарисуйте вертикальную линию, начиная с позиции x / y (верхний край). Высота линии - h пикселей. Части линии могут находиться за пределами границ дисплея. Эта процедура использует текущий индекс цвета для рисования линии. Для монохромного дисплея индекс цвета 0 обычно очищает пиксель, а индекс цвета 1 устанавливает пиксель.
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x: X-позиция.
y: Y-позиция.
h: Высота горизонтальной линии.
Использование:
Внутренний контур изображения.
//===================================================
drawXBM
drawXBMPКод: Выделить всё
C++ Prototype void U8GLIB::drawXBM(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap) void U8GLIB::drawXBMP(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap)
C Prototype void u8g_DrawXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap) void u8g_DrawXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap)
Описание
Нарисуйте растровое изображение XBM. Положение (x, y) - верхний левый угол растрового изображения. XBM содержит монохромные, 1-битные растровые изображения. Эта процедура только рисует значения пикселей 1. Для рисования используется текущий индекс цвета (см. SetColorIndex). Пиксель со значением 0 не нарисован (прозрачен).
Многие инструменты могут сохранять растровое изображение как XBM. Результат будет выглядеть следующим образом:
define u8g_logo_width 38
define u8g_logo_height 24Код: Выделить всё
static unsigned char u8g_logo_bits[] = { 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xe0, 0xe0, ... 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f };
Это можно скопировать прямо в ваш код. Используйте drawXBM для рисования этого растрового изображения в (0,0): u8g.drawXBM (0, 0, u8g_logo_width, u8g_logo_height, u8g_logo_bits);
В большинстве случаев лучше разместить битмап в области AVR PROGMEM. Добавьте U8G_PROGMEM после определения массива до последовательности init: static unsigned char u8g_logo_bits [] U8G_PROGMEM = {С помощью этой модификации вызывается вариант drawXBMP: u8g.drawXBMP (0, 0, u8g_logo_width, u8g_logo_height, u8g_logo_bits);
Аргументы:
u8g: Указатель на структуру u8g (только для интерфейса C).
x: X-позиция.
y: Y-позиция.
w: Ширина растрового изображения.
h: Высота растрового изображения.
bitmap: Указатель на начало растрового изображения.
Использование:
Внутренний контур изображения.
//===================================================