Полярная роза (pixel)
Сегодня хотел посмотреть работу нового модуля sprite в STEAD3, где встроена векторно-пиксельная графика. Взятый пример из документации Stead3 выдавал ошибку, но в результате переписки с Петром Косых, выяснилось, что в документации вместо sprite проставлен sprites. После исправления пример был выведен без ошибок.
После этого я немного повозился с этим примером изучая его, а затем решил найти программы каких-нибудь узоров на бейсике и перевести на LUA
gragics_in_visual_bas.pdf
Нашёл такой документ, там есть пример на Бэйсике составления классической кривой "Полярная роза":
У меня на Lua получилось так:
--$Name(ru):Полярная роза(pix)$
--$Author:Владимир Трофимчук(Troll)$
--$Info:R(fi) = 2*sin(4*fi)$
require "sprite"
sprite.direct(true)
declare 'pxl' (false)
function start(load)
pxl = pixels.new(800, 600, 1) -- размер окна и чанки 1х1
local f, x, y, r -- эти переменные участвуют в процедуре прерывания
for f = 0, 2*3.1415926, 0.001 do
r = 2*math.sin(4*f)
y = r*math.sin (f)
x = r*math.cos (f)
x = x*200+400 -- увеличиваем масштаб по х и переносим центр
y = y*150+300 -- увеличиваем масштаб по у и переносим центр
pxl:pixel(x, y, 0, 255, 255, 255) -- точку рисуем;
end
pxl:copy_spr(sprite.scr())
end
Это результат работы моей программы.
После этого я немного повозился с этим примером изучая его, а затем решил найти программы каких-нибудь узоров на бейсике и перевести на LUA
gragics_in_visual_bas.pdf
Нашёл такой документ, там есть пример на Бэйсике составления классической кривой "Полярная роза":
У меня на Lua получилось так:
--$Name(ru):Полярная роза(pix)$
--$Author:Владимир Трофимчук(Troll)$
--$Info:R(fi) = 2*sin(4*fi)$
require "sprite"
sprite.direct(true)
declare 'pxl' (false)
function start(load)
pxl = pixels.new(800, 600, 1) -- размер окна и чанки 1х1
local f, x, y, r -- эти переменные участвуют в процедуре прерывания
for f = 0, 2*3.1415926, 0.001 do
r = 2*math.sin(4*f)
y = r*math.sin (f)
x = r*math.cos (f)
x = x*200+400 -- увеличиваем масштаб по х и переносим центр
y = y*150+300 -- увеличиваем масштаб по у и переносим центр
pxl:pixel(x, y, 0, 255, 255, 255) -- точку рисуем;
end
pxl:copy_spr(sprite.scr())
end
Это результат работы моей программы.
Комментарии
Отправить комментарий