raytracer-c/test.py
2023-04-07 20:17:59 -04:00

35 lines
985 B
Python
Executable File

#!/opt/homebrew/bin/python3.11
from raytracer import *
c = color(1, 1, 1)
p = point(-10, 10, -10)
light = pointlight(p, c)
w = world(light)
middle = sphere() \
.set_material(material().diffuse(.7).specular(.3).color(color(.1, 1, .5))) \
.set_transform(matrix.translation(-.5, 1, .5))
w.add_object(middle)
right = sphere() \
.set_material(material().diffuse(.7).specular(.3).color(color(.5, 1, .1))) \
.set_transform(matrix.translation(1.5, .5, -.5).multiply(matrix.scaling(.5, .5, .5)))
w.add_object(right)
left = sphere() \
.set_material(material().diffuse(.7).specular(.3).color(color(1, .8, .1))) \
.set_transform(matrix.translation(-1.5, .33, -.75).multiply(matrix.scaling(.33, .33, .33)))
w.add_object(left)
c = camera(640, 480, math.pi/3)
frm = point(0, 1.5, -5)
to = point(0, 1, 0)
up = vector(0, 1, 0)
camera_transform = camera_view_transform(frm, to, up);
c.set_transform(camera_transform)
canvas = c.render(w)
canvas.write_to_file("test.ppm")