Zer0Galaxy
-
Публикации
1 220 -
Зарегистрирован
-
Посещение
-
Победитель дней
189
Сообщения, опубликованные пользователем Zer0Galaxy
-
-
Хм.
Rome OS - операционная система для Opencomputers, разработанная мной.Нет уж. Обещал ось - подавай ось.
-
А почему кирка не алмазная?
-
-
Раз так, позволь высказать еще пару мыслей:Я создаю систему на основе OpenOS, в любом случае упоминания OpenOS в моей системе бутут стерты.Первое. Если бы я взялся писать ось, я бы начал с ядра, а не с оболочки. Оболочка во многом будет зависеть от ядра. Ядро же от оболочки - никак.
Второе. Считается плохим тоном взять за основу чужую программу (песню, картину, киноленту) и сделать из нее свою, удалив упоминание о первоисточнике. Так что, или пиши свою систему с нуля или позиционируй её как надстройку над OpenOS. Иначе мы рискуем получить еще одну OpenOS, но под другим именем.
Это, конечно, моё личное мнение. Как поступать - решать тебе.
-
local form = { caption="", elements={} } . . . function RomeAPI.newForm(caption) local object = form object.caption = caption return object endВ корне не верный подход. При попытке создать второй экземпляр формы, ты перетрешь свойство caption и перечень элементов ранее существовавшей формы. Рекомендую ознакомиться со способами реализации ООП под Луа.
-
1
-
-
Так, так. Давай разберемся. Ты пишешь новую операционную систему или графическую оболочку под OpenOS? Если новую систему, то зачем используешь опеновские библиотеки term, event и т.д? Без OpenOS они работать не будут. А если графическую оболочку, то называй вещи своими именами.
-
1
-
-
Добавлены функции getColor и fill
-
1
-
-
Серега, не слушай Лёшу, пиши документацию. Мне, к примеру, пока не понятно, как векторная графика связана с GUI?
-
1
-
-
Разбрызгивание это функция скорее графического редактора. Оно легко реализуется при помощи graffiti.dot() и генератора случайных чисел.
-
1
-
-
Небольшая библиотечка, позволяющая рисовать простые геометрические фигуры.
pastebin get 1WmfjNfU lib/graffiti.lua
Особенностью библиотеки является то, что в качестве "пикселя" используется не знакоместо, а половина знакоместа. Таким образом, максимальное разрешение, которое можно получить на мониторе 3-его уровня составляет 160х100. Отсчет ведется с верхнего левого угла экрана и начинается с единицы.
Функции, предоставляемые библиотекой:
setColor(color) - устанавливает цвет чернил, которым в дальнейшем будет осуществляться рисование
getColor(x,y) - возвращает цвет, в который окрашен "пиксель" x, y. Возвращается реальный цвет "пикселя", а не тот в который он ранее окрашивался. В виду того, что ОС-мониторы далеко не true-color, эти цвета могут отличаться.
dot(x,y) - окрашивает в текущий цвет "пиксель" с координатами x, y.
move(x,y) - чертит линию от последней установленной точки до точки с координатами x, y. Позволяет создавать ломанные линии.
line(x0,y0,x1,y1) - чертит линию от точки x0, y0 до x1, y1.
circle(x,y,r[,fill]) - чертит окружность с центром x, y и радиусом r. Если указан параметр fill, он используется в качестве цвета заливки окружности. Если fill равняется true, окружность заливается текущим цветом.
fill(x,y) - заливает текущим цветом область, которой принадлежит точка x, y
polygon(x1,y1,x2,y2, ... , xn,yn[,fill]) - рисует многоугольник по заданным вершинам. Если количество параметров нечетно, последний параметр используется как цвет заливки многоугольника.
load(path) - загружает картинку из файла по указанному пути (поддерживаются png-файлы) и возвращает структуру, содержащую эту картинку.
За основу взята библиотека работы с PNG-файлами libPNGimage, автор TehSomeLuigi
draw(pic, x, y [,SizeX [,SizeY ] ] ) - рисует картинку pic на экран так, что левый верхний угол картинки размещается по координатам x, y. Параметр pic должен быть структурой, которую возвращает функция load или строкой с именем файла. В случае, когда pic - строка, картинка будет загружена из указанного файла, однако, в этом случае повторная прорисовка той же картинки вызовет ее повторную загрузку, что увеличит время прорисовки. Поддерживается альфа-канал. Если указаны параметры SizeX и SizeY, изображение растягивается/сжимается до указанных размеров. Если указан только параметр SizeX, высота картинки изменяется пропорционально изменению ширины.
Пример использования библиотеки:
g=require("graffiti") --Подключаем библиотеку require("term").clear()--Очищаем экран g.setColor(0xff0000) --Устанавливаем красный цвет чернил for i=1,50,10 do --Рисуем линии g.line(1,1,50,i) end g.setColor(0x00ff00) --Устанавливаем зеленый цвет чернил g.circle(65,25,20) --Рисуем окружность g.setColor(0x0000ff) --Устанавливаем синий цвет чернил g.dot(10,15) --Рисуем треугольник g.move(40,35) g.move(30,45) g.move(10,15)И вот результат на мониторе второго уровня:
Планы на будущее:
1. Реализовать заливку (реализовано)
2. Осуществить возможность прорисовки изображений из png-файла (реализовано)
-
18
-
1
-
-
Вроде как дата-карта умеетЕсть примеры асимметричного шифрования на Lua?
-
1
-
-
Можно и без распараллеливания
repeat
mess=rednet.receive(1)
print(--выводим анимацию)
until mess==что_то
-
1
-
-
Если на открытую цифру кикнуть, она исчезает.
-
1
-
-
Это в паскале или С так. А в Луа любая переменная - это значение в таблице окружения, а имя переменной - ключ этого значения.
-
Ну, думаю, объем занимаемый скалярной переменной тоже будет складываться не только из бита/байта, но и как минимум, из имени переменной. В общем, каждый конкретный случай может быть уникальным.А разве ключи таблицы не будут есть эдак раз в пятьдесят (а то и больше) памяти? По сути ведь тут она и есть. Это погрешность недопустимая, я полагаю. -
computer=require("computer")
freememory1=0
freememory2=0
n=10000
for i=1,10 do
freememory1=freememory1+computer.freeMemory()
os.sleep(0.5)
end
freememory1=freememory1 / 10 --определяем свободную память до объявления массива boolean
bool={} --объявляем массив
for i=1,n do -- и заполняем его значениями
bool[i]=true
end
for i=1,10 do
freememory2=freememory2+computer.freeMemory()
os.sleep(0.5)
end
freememory2=freememory2 / 10 --определяем свободную память после объявления массива boolean
print("Одна переменная типа boolean занимает ",(freememory1-freememory2)/n," байт.")
-
1
-
-
Зачем? Как я понял, ты предлагаешь использовать два проектора, каждый из которых воспроизводит по три цвета. Каким образом анимация влияет на количество проекторов?
А! Понял. Можно сделать так, два проектора отображают статическую часть куба, а два - вращающуюся грань. И того- четыре проектора.
-
На голопроэкторе, наверное, можно сделать и анимацию вращения граней.
-
Дискетой? При наличии сети? В реале тоже так делаешь?
-
Попробуй так:
local component = require('component') currentX, currentY, currentZ = component.navigation.getPosition() print(currentX,currentY,currentZ)-
2
-
-
А какую библиотеку thread используешь? И что говорит ошибка?
-
Ну, так напиши. Опыт ведь есть.
-
А как отпечатанные блоки дебаг-картой ставить?
-

Игровой клуб "HI"
в Флудилка
Опубликовано:
Попробуйте отключать по одному компу и следите, как это влияет на загрузку