[page:Curve] →

# [name]

Create a smooth 2d cubic bezier curve, defined by a start point, endpoint and two control points.

## Example

`var curve = new THREE.CubicBezierCurve( new THREE.Vector2( -10, 0 ), new THREE.Vector2( -5, 15 ), new THREE.Vector2( 20, 15 ), new THREE.Vector2( 10, 0 ) ); var points = curve.getPoints( 50 ); var geometry = new THREE.BufferGeometry().setFromPoints( points ); var material = new THREE.LineBasicMaterial( { color : 0xff0000 } ); // Create the final object to add to the scene var curveObject = new THREE.Line( geometry, material );`

## Constructor

### [name] ( [param:Vector2 v0], [param:Vector2 v1], [param:Vector2 v2], [param:Vector2 v3] )

[page:Vector2 v0] – The starting point.
[page:Vector2 v1] – The first control point.
[page:Vector2 v2] – The second control point.
[page:Vector2 v3] – The ending point.

## Properties

See the base [page:Curve] class for common properties.

### [property:Boolean isCubicBezierCurve]

Used to check whether this or derived classes are CubicBezierCurves. Default is *true*.
You should not change this, as it used internally for optimisation.

### [property:Vector2 v0]

The starting point.

### [property:Vector2 v1]

The first control point.

### [property:Vector2 v2]

The second control point.

### [property:Vector2 v3]

The ending point.

## Methods

See the base [page:Curve] class for common Methods.

## Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]