Есть пикча, её нужно поместить на мониторы 126 на 63, мониторы 6 ширина 5 вертикаль. Я знаю что ECS уже делал подобную программу. Но она не подходит в 3-х моментах, как она ведёт себя если картинка не на полный экран? 2-й Это не библиотека, из этого вытекает 3-тий пикча ставиться на 1 1, возможно это можно изменить но нужно что-бы это значение было динамичное.
Что я получил:
Скрытый текст
local multiplescreen ={}local curmon ='557'local gpu = require('component').gpu
local image = require('image')local monitors ={'a05','b77','6d1','917','7a6','7b1','17a','10d','de3','a92','000','0fd','47e','ca0','0d7','b29','d35','b4b','b1e','902','4fc','4b8','31f','82a','05b','d4f','4ee','79b','518','c7a'}function round(num)return num +(2^52+2^51)-(2^52+2^51)endfunction get(address,CT)-- позаимствовано у OpenOsfor c in require('component').list(CT,true)doif c:sub(1,address:len())== address thenreturn c
endendendfunction multiplescreen.getMonitor(x,y)local i =126while i < x do
i = i + i
endlocal xx = round(i /126)local i=63while i < y do
i = i + i
endlocal yy = round(i /63)-- все вот это ранее это определяем какой моник мыы должны использовать
i =0
e =0
x =0
toend ={}
s =0while x <126*6do
x = x +126
i = i +1
toend[i]={}
y =0
e =0while y <63*5do
y = y +63
e = e +1
s = s +1
toend[i][e]= monitors[s]endendif curmon ~= toend[xx][yy]then-- проверяем надобность биндить
gpu.setResolution(126,63)
gpu.bind(get(toend[xx][yy]),false)-- фолсе вторым аргументом, все как надо
gpu.setResolution(126,63)
curmon = toend[xx][yy]endreturn toend[xx][yy]endlocalfunction set(...)local idk ={...}
multiplescreen.getMonitor(idk[1],idk[2])-- биндимся на нужный мониторwhile idk[1]>126do
idk[1]= idk[1]-126endwhile idk[2]>63do
idk[2]= idk[2]-63end
gpu.setForeground(idk[4])
gpu.setBackground(idk[3])return gpu.set(idk[1],idk[2],idk[5])endfunction multiplescreen.draw(x1,y1,path)if type(path)=='string'then
imagee = image.load(path)
print('load')elselocal imagee = path
endlocal w = imagee[1]local h = imagee[2]for x =1,w dofor y =1,h dolocal bg,fg,_,symbol = image.get(imagee,x,y)
print(bg,fg,symbol)
set(x1+x-1,y1+y-1,bg,fg,symbol)endend
gpu.setResolution(126,63)
gpu.bind(get('557'))end
multiplescreen.draw(100,50,'/BG.pic')-- тест пикчаreturn multiplescreen-- задумано как библия
Вопрос: почему оно скипает 3-й монитор хотя видит его, даже сторонние проги его видят.
Есть пикча, её нужно поместить на мониторы 126 на 63, мониторы 6 ширина 5 вертикаль. Я знаю что ECS уже делал подобную программу. Но она не подходит в 3-х моментах, как она ведёт себя если картинка не на полный экран? 2-й Это не библиотека, из этого вытекает 3-тий пикча ставиться на 1 1, возможно это можно изменить но нужно что-бы это значение было динамичное.
Что я получил:
Вопрос: почему оно скипает 3-й монитор хотя видит его, даже сторонние проги его видят.
Как жить?
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах