1. NodeBox 1
    1. Homepage
    2. NodeBox 3Node-based app for generative design and data visualization
    3. NodeBox OpenGLHardware-accelerated cross-platform graphics library
    4. NodeBox 1Generate 2D visuals using Python code (Mac OS X only)
  2. Gallery
  3. Documentation
  4. Forum
  5. Blog

bezier.point()

Syntax

point(path, t, segments=None)

Description

Returns coordinates for the point at t on the path, which is a value ranging between 0.0 and 1.0. When t is 0.5 for example, coordinates are returned for the point that would be in the middle of the path.

The return value is a PathElement object that has a number of properties: like x, y and cmd for example. Read the tutorial on paths to see what you can do with the points of a path.

Example

bezier = ximport("bezier")
 
autoclosepath(False)
beginpath(100,100)
curveto(150,200, 200,450, 300,300)
path = endpath()
 
for t in range(10):
  pt = bezier.point(path, t*0.1)
  oval(pt.x-2, pt.y-2, 4, 4)
  line(pt.x, pt.y, pt.ctrl1.x, pt.ctrl1.y)

 

 

The point() command calculates the length() of the path before determining where t is. When you supply the list of segment lengths yourself, as returned from length(path, segmented=True), point() works considerably faster in a for-loop, since it doesn't need to recalculate the length during each iteration:

import bezier
 
autoclosepath(False)
beginpath(100,100)
curveto(150,200, 200,450, 300,300)
path = endpath()
 
lengths = bezier.length(path, segmented=True)
for t in range(10):
    pt = bezier.point(path, t*0.1, segments=lengths)
    oval(pt.x-2, pt.y-2, 4, 4)
    line(pt.x, pt.y, pt.ctrl1.x, pt.ctrl1.y)