CairoContext::copyPathFlat
CairoContext::deviceToUser
CairoContext
PHP Manual

# CairoContext::curveTo

# cairo_curve_to

(PECL cairo >= 0.1.0)

CairoContext::curveTo -- cairo_curve_to — Adds a curve

### Description

Object oriented style (method):

public void CairoContext::curveTo ( float `$x1` , float `$y1` , float `$x2` , float `$y2` , float `$x3` , float `$y3` )

Procedural style:

void cairo_curve_to ( CairoContext `$context` , float `$x1` , float `$y1` , float `$x2` , float `$y2` , float `$x3` , float `$y3` )

Adds a cubic Bezier spline to the path from the current point to position `x3` ,`y3` in user-space coordinates, using `x1`, `y1` and `x2`, `y2` as the control points. After this call the current point will be `x3`, `y3`.

If there is no current point before the call to CairoContext::curveTo() this function will behave as if preceded by a call to CairoContext::moveTo() (`x1`, `y1`).

### Parameters

`context`

  A valid CairoContext object created with CairoContext::__construct() or cairo_create()

`x1`

  First control point in the x axis for the curve

`y1`

  First control point in the y axis for the curve

`x2`

  Second control point in x axis for the curve

`y2`

  Second control point in y axis for the curve

`x3`

  Final point in the x axis for the curve

`y3`

  Final point in the y axis for the curve

### Return Values

No value is returned.

### Examples

Example #1 Object oriented style

`<?php
$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);
$c->setSourceRgb(0, 0, 0);
$c->paint();
$c->moveTo(10, 50);
$c->setLineWidth(5);
$c->setSourceRgb(.1, 0, 1);
$c->curveTo(20, 80, 80, 20, 90, 50);
$c->stroke();
$s->writeToPng(dirname(__FILE__) . '/curveTo.png');
?>`

Example #2 Procedural style

`<?php
$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);
cairo_set_source_rgb($c, 0, 0, 0);
cairo_paint($c);
cairo_move_to($c, 10, 50);
cairo_set_line_width($c, 5);
cairo_set_source_rgb($c, .1, 0, 1);
cairo_curve_to($c, 20, 80, 80, 20, 90, 50);
cairo_stroke($c);
cairo_surface_write_to_png($s, dirname(__FILE__) . '/curve_to.png');
?>`

### See Also

- CairoContext::moveTo() - The moveTo purpose

CairoContext::copyPathFlat
CairoContext::deviceToUser
CairoContext
PHP Manual