Перейти к содержимому


Фотография

Braille Bicycle - монохромные пиксели [OpenComputers]

графика

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 11

#1 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 740
  • Уровень сигнала: 0,27%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 17 Февраль 2016 - 17:53

*
Популярное сообщение!

p4cTe12.png

 

Небольшая библиотека, которая иллюстрирует один из вариантов рисования графики.

Плюсы:

* Каждое знакоместо содержит 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)

Сообщение отредактировал Totoro: 17 Май 2016 - 14:21


#2 Оффлайн   electronic_steve

electronic_steve
  • Пользователи
  • Сообщений: 79
  • Уровень сигнала: 18,52%
  • В игре: 150 час. 57 мин.
  • Городчелябинск

Награды

                    

Отправлено 17 Февраль 2016 - 19:48

...

вот тебе:http://unicode-table...block-elements/
выглядит получше.


Сообщение отредактировал electronic_steve: 17 Февраль 2016 - 19:49


#3 Оффлайн   Krutoy

Krutoy
  • Гуру
  • Сообщений: 499
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 17 Февраль 2016 - 21:14

О да, я мечтал об этом еще со времен своих первых набросков интернет-сервера!

Z1QtKpqm.png

 

Хорошая утилита, обязательно ей воспользуюсь как только буду делать всякие графики.

Только интерфейс неудобный, какие то матрицы, вызовы с передачей одного и тогоже..



#4 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 740
  • Уровень сигнала: 0,27%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 17 Февраль 2016 - 21:30

вот тебе:http://unicode-table...block-elements/
выглядит получше.

 
Большое спасибо! А я уже и не надеялся. А тут ты. Прямо спас.
 

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

 

У нас на форуме слишком много ООП. Я решил разбавить этот рай грубой процедурщиной.


Сообщение отредактировал Totoro: 17 Февраль 2016 - 21:32

  • Fingercomp, JaggerDer и davial это нравится

#5 Оффлайн   Krutoy

Krutoy
  • Гуру
  • Сообщений: 499
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 18 Февраль 2016 - 23:11

 У нас на форуме слишком много ООП. Я решил разбавить этот рай грубой процедурщиной.

Чет скучно на форуме. Давай похоливарим?  :)

 

Я считаю что

matrix:clear()

понятнее и удобнее чем

braille.clear(matrix)

Дискасс.



#6 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 740
  • Уровень сигнала: 0,27%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 18 Февраль 2016 - 23:41

Чет скучно на форуме. Давай похоливарим?  :)

...

Дискасс.

 

Согласен, развели велосипеды. Тоторо уже не торт. :smile3:

 

А где ваш дух хардкорного процедурного программерства?

Где, спрашиваю, огонь в глазах, где мышки в зубах?

Без гладко отполированого ООП уже и программа не программа?

:P



#7 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 760
  • Уровень сигнала: 4,47%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 19 Февраль 2016 - 18:32

Good job. :smile9:



#8 Оффлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 212
  • Уровень сигнала: 14,44%
  • В игре: 117 час. 41 мин.
  • ГородЛуна

Награды

                       

Отправлено 19 Февраль 2016 - 18:37

Минусы:

* Не очень подходит для многоцветного изображения

* Горизонтальные полосы через каждые четыре ряда пикселей

 

В плюсы засунь, красиво же выглядит монохромно и с полосами.


  • Totoro и Ktlo это нравится

#9 Оффлайн   Asior

Asior
  • Пользователи
  • Сообщений: 160
  • Уровень сигнала: 62,97%
  • В игре: 513 час. 5 мин.

Награды

                          

Отправлено 05 Октябрь 2016 - 19:36

А с обновлением шрифтов на ОС выглядит теперь куда как более эпически.

 

a66c1725e1a9f06ec7b740d437d80099.jpg


  • Totoro это нравится

#10 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 740
  • Уровень сигнала: 0,27%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 05 Октябрь 2016 - 22:29

А с обновлением шрифтов на ОС выглядит теперь куда как более эпически.

 

Да. Хотя с фоновыми точечками тоже было стильно. Для каких-нибудь диаграмм или индикаторов подходило.



#11 Оффлайн   davial

davial
  • Пользователи
  • Сообщений: 450
  • Уровень сигнала: 14,83%
  • В игре: 120 час. 52 мин.
  • ГородТроон в системе Канопуса.

Награды

                       

Отправлено 05 Октябрь 2016 - 22:39

А где ваш дух хардкорного процедурного программерства?

Где, спрашиваю, огонь в глазах, где мышки в зубах?

Без гладко отполированого ООП уже и программа не программа?

:P

Ты про главное забыл : без Дебагера, в бой - не выходить. :D


Сообщение отредактировал davial: 05 Октябрь 2016 - 22:43


#12 Оффлайн   ALeXeR

ALeXeR
  • Пользователи
  • Сообщений: 204
  • Уровень сигнала: 31,41%
  • В игре: 255 час. 59 мин.
  • ГородОдесса

Отправлено 05 Октябрь 2016 - 22:42

норм тема) страдал таким в линуховой консоли)







Темы с аналогичным тегами графика

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных