]>
Dogcows Code - chaz/rasterize/blob - rotate.lua
ea383448142beaef8da64bdc8748089229c3c92e
3 -- Render a scene from different angles.
8 local look
= {x
= -2, y
= -1, z
= -2}
9 local size
= {w
= 640, h
= 480}
12 c 1.0 1.0 0.0 1.0 1.0 0.0 1.0 1.0 0.0
16 c 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1
20 c 0.7 0.3 0.2 0.8 0.2 0.1 0.9 0.2 0.2
24 c 0.1 0.2 0.7 0.1 0.3 0.9 0.2 0.1 0.8
28 c 0.9 0.8 0.9 0.8 0.7 0.9 0.9 0.8 0.7
35 function vec_scale(v
, s
)
36 return {x
= v
.x
* s
, y
= v
.y
* s
, z
= v
.z
* s
}
41 local out
= io
.popen("./project2 -", "w")
42 out
:write(string.format([[
50 ]], size
.w
, size
.h
, v
.x
, v
.y
, v
.z
, look
.x
, look
.y
, look
.z
, size
.w
/size
.h
, scene
))
51 local a
, b
= coroutine
.yield()
53 os
.rename("stdin.bmp", string.format("r/out%03d.bmp", i
))
64 for i
= 1,concurrent
do
65 table.insert(threads
, coroutine
.wrap(render
))
68 for i
= 0,(slices
-1) do
69 local t
= 2 * i
* math
.pi
/ slices
75 v
= vec_scale(v
, distance
)
77 threads
[(i
% concurrent
) + 1](i
, v
)
80 for k
,v
in ipairs(threads
) do
81 v(null
) -- clear up any leftover work
This page took 0.03132 seconds and 3 git commands to generate.