Primitive objects
Rendering function
from fdray import *
def render(*args):
return Scene(
Camera(20, 30, view_scale=2.2),
LightSource((0.5, 90, 40), "white"),
Cylinder((0, 0, 0), (2, 0, 0), 0.02, Color("red")),
Cylinder((0, 0, 0), (0, 2, 0), 0.02, Color("green")),
Cylinder((0, 0, 0), (0, 0, 2), 0.02, Color("blue")),
*args,
).render(width=300, height=300)
Box
render(Box(0, (1, 1.4, 1.8), Color("#ff33ff77")))
Cuboid
render(Cuboid(0, (1, 1.4, 1.8), Color("#33ffff77")))
Cube
render(Cube(0.5, 1.5, Color("gold", 0.5)))
render(Cube().pigment(Color("gold", 0.5)))
Cone
render(Cone("x", 1, "y", 0.5, Color("darkgreen", 0.5)))
render(Cone("-0.5*x", 1, "z", 0.5, "open", Color("dimgrey", 0.5)))
Cylinder
render(Cylinder("-z", "y", 0.5, Color("dimgrey", 0.5)))
Plane
render(Plane("y", 0.5, Color("pink", 0.5)))
Sphere
render(Sphere(0, 1.5, Color("coral", 0.5)))
render(Sphere().pigment(Color("brown", 0.5)).finish(phong=0.3))
Sphere sweep
render(
SphereSweep(
"linear_spline",
[0, (0, 1, 0), (0, 0, 1.5), (2, 0, 0)],
[0.1, 0.2, 0.1, 0.2],
)
.pigment(Color("yellow", 0.5))
.finish(phong=0.3),
)
Polyline
render(
Polyline([(0, 0, 0), (0, 1, 0), (0, 0, 1.5), (2, 0, 0)], 0.2)
.pigment(Color("purple", 0.5))
.finish(phong=0.5, brilliance=0.5),
)
Curve
render(
Curve([(0, 0, 0), (0, 1, 0), (0, 0, 1.5), (2, 0, 0)], 0.2)
.pigment(Color("ivory", 0.5))
.finish(phong=0.5, brilliance=0.5),
)
Text
Text.set_font("DejaVuSerif")
'/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf'
render(Text("text", 0.1, Color("teal")))
render(Text("text", 0, Color("teal")).align())
render(Text("text", 0, Color("teal")).align(20, 30))
Torus
render(
Torus(1, 0.4, Color("cyan", 0.5))
.finish(phong=0.3, reflection=0.5)
.rotate(90, 10, 20),
)