author | Francesco Abbate <francesco.bbt@gmail.com> | 2010年07月23日 22:59:23 +0200 |
---|---|---|
committer | Francesco Abbate <francesco.bbt@gmail.com> | 2010年07月23日 22:59:23 +0200 |
commit | dbe3ed247ea783b1a8087bf19b9be91c2e246b0b (patch) | |
tree | c9969664f56cc03d8a9be61666c9b4fba602a357 /pre3d/test.lua | |
parent | e0c636c5c1e9bb0696ace9ba4d8e39f76843b484 (diff) | |
download | gsl-shell-dbe3ed247ea783b1a8087bf19b9be91c2e246b0b.tar.gz |
-rw-r--r-- | pre3d/test.lua | 30 |
diff --git a/pre3d/test.lua b/pre3d/test.lua index b1855f1e..ff291090 100644 --- a/pre3d/test.lua +++ b/pre3d/test.lua @@ -95,7 +95,7 @@ function demo3() -- renderer.fill_rgba_alpha = 0.95 -- renderer.stroke_rgba = rgb(0x66/255, 0x66/255, 0x66/255) - renderer.camera.focal_length = 30; + renderer.camera.focal_length = 40; local N, tour = 256, 2*pi for j=0, N do @@ -104,3 +104,31 @@ function demo3() draw(renderer, shape) end end + +function demo4() + local win = window('black') + win:setview(-1, -1, 1, 1) + + local renderer = Pre3d.Renderer(win) + local x = |u,v| (1 + 1/2 * v *cos(u/2))*cos(u) + local y = |u,v| (1 + 1/2 * v *cos(u/2))*sin(u) + local z = |u,v| 1/2 * v * sin(u/2) + local shape = ShapeUtils.makeUVSurface(y, z, x, 0, -1, 2*pi, 1, 60, 4) + + renderer.draw_overdraw = false + renderer.draw_backfaces = true + renderer.fill_rgba = rgb(0x4A/255, 0x92/255, 0xBF/255) + renderer.fill_rgba_backside = rgb(0xBF/255, 0x92/255, 0x4A/255) + renderer.set_light_intensity = true + renderer.draw_overdraw = true +-- renderer.stroke_rgba = rgb(0x66/255, 0x66/255, 0x66/255) + + renderer.camera.focal_length = 40; + + local N, tour = 256, 2*pi + for j=0, N do + local a = tour*j/N + setTransform(renderer.camera.transform, -a, -0.15*a) + draw(renderer, shape) + end +end |