Totoro 3 563 Опубликовано: 17 февраля, 2016 (изменено) Небольшая библиотека, которая иллюстрирует один из вариантов рисования графики. Плюсы: * Каждое знакоместо содержит 8 пикселей - 2х4. * Удобно рисовать инфографику даже на монохромном дисплее Минусы: * Не очень подходит для многоцветного изображения * Горизонтальные полосы через каждые четыре ряда пикселей pastebin get 5FzEuqs8 braille.lua Как вы уже наверное догадались, я использовал символы шрифта Брайля. Библиотека (скорее набросок библиотеки - расширение, всяческое допиливание и улучшение приветствуется!) поддерживает следующие операции: braille.matrix(width: number, height: number): table - создаем матрицу braille.set(matrix: table, x: number, y: number, value: number) - рисуем пиксель на матрице (1 - заполнен, 0 - пуст) braille.get(matrix: table, x: number, y: number): number - получаем пиксель braille.line(matrix: table, x1: number, y1: number, x2: number, y2: number, value: number): table - рисуем линию на матрице braille.clear(matrix: table) - чистим матрицу braille.render(matrix: table, x: number, y: number) - рисуем матрицу на экране Пример: local gpu = require('component').gpu local br = require('braille') function frame(x, y, width, height) gpu.set(x, y, '╒'..string.rep('═', width-2)..'╕') for dy = y + 1, y + height-1 do gpu.set(x, dy, '│'..string.rep(' ', width-2)..'│') end gpu.set(x, y+height, '╘'..string.rep('═', width-2)..'╛') end local matrix = br.matrix(96, 12) for x = 1, matrix.width do br.line(matrix, x, math.random(1, matrix.height), x, matrix.height) end frame(1, 1, 50, 4) gpu.setForeground(0x000000) gpu.setBackground(0xFFFFFF) br.render(matrix, 2, 2) gpu.setForeground(0xFFFFFF) gpu.setBackground(0x000000) frame(1, 6, 50, 4) br.clear(matrix) for x = 1, matrix.width do br.line(matrix, x, math.random(1, matrix.height), x, matrix.height) end br.render(matrix, 2, 7) function romb(x, y, size) br.line(matrix, x, y, x+size, y+size) br.line(matrix, x+size, y+size, x, y+size*2) br.line(matrix, x, y+size*2, x-size, y+size) br.line(matrix, x-size, y+size, x, y) end frame(1, 11, 50, 4) br.clear(matrix) romb(21,1,5); romb(36,1,5); romb(51,1,5); romb(66,1,5) br.render(matrix, 2, 12) Изменено 17 мая, 2016 пользователем Totoro 10 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
electronic_steve 344 Опубликовано: 17 февраля, 2016 (изменено) ... вот тебе:http://unicode-table.com/ru/blocks/block-elements/ выглядит получше. Изменено 17 февраля, 2016 пользователем electronic_steve Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Krutoy 1 169 Опубликовано: 17 февраля, 2016 О да, я мечтал об этом еще со времен своих первых набросков интернет-сервера! Хорошая утилита, обязательно ей воспользуюсь как только буду делать всякие графики. Только интерфейс неудобный, какие то матрицы, вызовы с передачей одного и тогоже.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro Автор темы 3 563 Опубликовано: 17 февраля, 2016 (изменено) вот тебе:http://unicode-table.com/ru/blocks/block-elements/ выглядит получше. Большое спасибо! А я уже и не надеялся. А тут ты. Прямо спас. Хорошая утилита, обязательно ей воспользуюсь как только буду делать всякие графики. Только интерфейс неудобный, какие то матрицы, вызовы с передачей одного и тогоже.. У нас на форуме слишком много ООП. Я решил разбавить этот рай грубой процедурщиной. Изменено 17 февраля, 2016 пользователем Totoro 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Krutoy 1 169 Опубликовано: 18 февраля, 2016 У нас на форуме слишком много ООП. Я решил разбавить этот рай грубой процедурщиной. Чет скучно на форуме. Давай похоливарим? Я считаю что matrix:clear() понятнее и удобнее чем braille.clear(matrix) Дискасс. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro Автор темы 3 563 Опубликовано: 18 февраля, 2016 Чет скучно на форуме. Давай похоливарим? ... Дискасс. Согласен, развели велосипеды. Тоторо уже не торт. А где ваш дух хардкорного процедурного программерства? Где, спрашиваю, огонь в глазах, где мышки в зубах? Без гладко отполированого ООП уже и программа не программа? :P Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 19 февраля, 2016 Good job. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 19 февраля, 2016 Минусы: * Не очень подходит для многоцветного изображения * Горизонтальные полосы через каждые четыре ряда пикселей В плюсы засунь, красиво же выглядит монохромно и с полосами. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 5 октября, 2016 А с обновлением шрифтов на ОС выглядит теперь куда как более эпически. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro Автор темы 3 563 Опубликовано: 5 октября, 2016 А с обновлением шрифтов на ОС выглядит теперь куда как более эпически. Да. Хотя с фоновыми точечками тоже было стильно. Для каких-нибудь диаграмм или индикаторов подходило. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
davial 1 972 Опубликовано: 5 октября, 2016 (изменено) А где ваш дух хардкорного процедурного программерства? Где, спрашиваю, огонь в глазах, где мышки в зубах? Без гладко отполированого ООП уже и программа не программа? :P Ты про главное забыл : без Дебагера, в бой - не выходить. Изменено 5 октября, 2016 пользователем davial Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ALeXeR 67 Опубликовано: 5 октября, 2016 норм тема) страдал таким в линуховой консоли) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах