---
name: "prim"
section: "3caca"
platform: "linux"
package: "libcucul-dev"
version: "0.99.beta11.debian-2"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/prim"
---

# prim(3caca)

## NAME

libcucul primitives drawing -

### Functions

int **cucul\_draw\_line** (**cucul\_canvas\_t** \*, int, int, int, int, unsigned long int)\
 *Draw a line on the canvas using the given character.*  int **cucul\_draw\_polyline** (**cucul\_canvas\_t** \*, int const x\[\], int const y\[\], int, unsigned long int)\
 *Draw a polyline.*  int **cucul\_draw\_thin\_line** (**cucul\_canvas\_t** \*, int, int, int, int)\
 *Draw a thin line on the canvas, using ASCII art.*  int **cucul\_draw\_thin\_polyline** (**cucul\_canvas\_t** \*, int const x\[\], int const y\[\], int)\
 *Draw an ASCII art thin polyline.*  int **cucul\_draw\_circle** (**cucul\_canvas\_t** \*, int, int, int, unsigned long int)\
 *Draw a circle on the canvas using the given character.*  int **cucul\_draw\_ellipse** (**cucul\_canvas\_t** \*, int, int, int, int, unsigned long int)\
 *Draw an ellipse on the canvas using the given character.*  int **cucul\_draw\_thin\_ellipse** (**cucul\_canvas\_t** \*, int, int, int, int)\
 *Draw a thin ellipse on the canvas.*  int **cucul\_fill\_ellipse** (**cucul\_canvas\_t** \*, int, int, int, int, unsigned long int)\
 *Fill an ellipse on the canvas using the given character.*  int **cucul\_draw\_box** (**cucul\_canvas\_t** \*, int, int, int, int, unsigned long int)\
 *Draw a box on the canvas using the given character.*  int **cucul\_draw\_thin\_box** (**cucul\_canvas\_t** \*, int, int, int, int)\
 *Draw a thin box on the canvas.*  int **cucul\_draw\_cp437\_box** (**cucul\_canvas\_t** \*, int, int, int, int)\
 *Draw a box on the canvas using CP437 characters.*  int **cucul\_fill\_box** (**cucul\_canvas\_t** \*, int, int, int, int, unsigned long int)\
 *Fill a box on the canvas using the given character.*  int **cucul\_draw\_triangle** (**cucul\_canvas\_t** \*, int, int, int, int, int, int, unsigned long int)\
 *Draw a triangle on the canvas using the given character.*  int **cucul\_draw\_thin\_triangle** (**cucul\_canvas\_t** \*, int, int, int, int, int, int)\
 *Draw a thin triangle on the canvas.*  int **cucul\_fill\_triangle** (**cucul\_canvas\_t** \*, int, int, int, int, int, int, unsigned long int)\
 *Fill a triangle on the canvas using the given character.*

## Detailed Description

These functions provide routines for primitive drawing, such as lines, boxes, triangles and ellipses.

## Function Documentation

### int cucul\_draw\_line (cucul\_canvas\_t \* cv, int x1, int y1, int x2, int y2, unsigned long int ch)

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *x1* X coordinate of the first point. \
 *y1* Y coordinate of the first point. \
 *x2* X coordinate of the second point. \
 *y2* Y coordinate of the second point. \
 *ch* UTF-32 character to be used to draw the line.

**Returns:**

This function always returns 0.

### int cucul\_draw\_polyline (cucul\_canvas\_t \* cv, int const x\[\], int const y\[\], int n, unsigned long int ch)

Draw a plyline on the canvas using the given character and coordinate arrays. The first and last points are not connected, hence in order to draw a polygon you need to specify the starting point at the end of the list as well.

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *x* Array of X coordinates. Must have `n` + 1 elements. \
 *y* Array of Y coordinates. Must have `n` + 1 elements. \
 *n* Number of lines to draw. \
 *ch* UTF-32 character to be used to draw the lines.

**Returns:**

This function always returns 0.

### int cucul\_draw\_thin\_line (cucul\_canvas\_t \* cv, int x1, int y1, int x2, int y2)

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *x1* X coordinate of the first point. \
 *y1* Y coordinate of the first point. \
 *x2* X coordinate of the second point. \
 *y2* Y coordinate of the second point.

**Returns:**

This function always returns 0.

### int cucul\_draw\_thin\_polyline (cucul\_canvas\_t \* cv, int const x\[\], int const y\[\], int n)

Draw a thin polyline on the canvas using the given coordinate arrays and with ASCII art. The first and last points are not connected, so in order to draw a polygon you need to specify the starting point at the end of the list as well.

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *x* Array of X coordinates. Must have `n` + 1 elements. \
 *y* Array of Y coordinates. Must have `n` + 1 elements. \
 *n* Number of lines to draw.

**Returns:**

This function always returns 0.

### int cucul\_draw\_circle (cucul\_canvas\_t \* cv, int x, int y, int r, unsigned long int ch)

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *x* Center X coordinate. \
 *y* Center Y coordinate. \
 *r* Circle radius. \
 *ch* UTF-32 character to be used to draw the circle outline.

**Returns:**

This function always returns 0.

### int cucul\_draw\_ellipse (cucul\_canvas\_t \* cv, int xo, int yo, int a, int b, unsigned long int ch)

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *xo* Center X coordinate. \
 *yo* Center Y coordinate. \
 *a* Ellipse X radius. \
 *b* Ellipse Y radius. \
 *ch* UTF-32 character to be used to draw the ellipse outline.

**Returns:**

This function always returns 0.

### int cucul\_draw\_thin\_ellipse (cucul\_canvas\_t \* cv, int xo, int yo, int a, int b)

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *xo* Center X coordinate. \
 *yo* Center Y coordinate. \
 *a* Ellipse X radius. \
 *b* Ellipse Y radius.

**Returns:**

This function always returns 0.

### int cucul\_fill\_ellipse (cucul\_canvas\_t \* cv, int xo, int yo, int a, int b, unsigned long int ch)

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *xo* Center X coordinate. \
 *yo* Center Y coordinate. \
 *a* Ellipse X radius. \
 *b* Ellipse Y radius. \
 *ch* UTF-32 character to be used to fill the ellipse.

**Returns:**

This function always returns 0.

### int cucul\_draw\_box (cucul\_canvas\_t \* cv, int x1, int y1, int x2, int y2, unsigned long int ch)

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *x1* X coordinate of the upper-left corner of the box. \
 *y1* Y coordinate of the upper-left corner of the box. \
 *x2* X coordinate of the lower-right corner of the box. \
 *y2* Y coordinate of the lower-right corner of the box. \
 *ch* UTF-32 character to be used to draw the box.

**Returns:**

This function always returns 0.

### int cucul\_draw\_thin\_box (cucul\_canvas\_t \* cv, int x1, int y1, int x2, int y2)

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *x1* X coordinate of the upper-left corner of the box. \
 *y1* Y coordinate of the upper-left corner of the box. \
 *x2* X coordinate of the lower-right corner of the box. \
 *y2* Y coordinate of the lower-right corner of the box.

**Returns:**

This function always returns 0.

### int cucul\_draw\_cp437\_box (cucul\_canvas\_t \* cv, int x1, int y1, int x2, int y2)

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *x1* X coordinate of the upper-left corner of the box. \
 *y1* Y coordinate of the upper-left corner of the box. \
 *x2* X coordinate of the lower-right corner of the box. \
 *y2* Y coordinate of the lower-right corner of the box.

**Returns:**

This function always returns 0.

### int cucul\_fill\_box (cucul\_canvas\_t \* cv, int x1, int y1, int x2, int y2, unsigned long int ch)

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *x1* X coordinate of the upper-left corner of the box. \
 *y1* Y coordinate of the upper-left corner of the box. \
 *x2* X coordinate of the lower-right corner of the box. \
 *y2* Y coordinate of the lower-right corner of the box. \
 *ch* UTF-32 character to be used to draw the box.

**Returns:**

This function always returns 0.

### int cucul\_draw\_triangle (cucul\_canvas\_t \* cv, int x1, int y1, int x2, int y2, int x3, int y3, unsigned long int ch)

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *x1* X coordinate of the first point. \
 *y1* Y coordinate of the first point. \
 *x2* X coordinate of the second point. \
 *y2* Y coordinate of the second point. \
 *x3* X coordinate of the third point. \
 *y3* Y coordinate of the third point. \
 *ch* UTF-32 character to be used to draw the triangle outline.

**Returns:**

This function always returns 0.

### int cucul\_draw\_thin\_triangle (cucul\_canvas\_t \* cv, int x1, int y1, int x2, int y2, int x3, int y3)

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *x1* X coordinate of the first point. \
 *y1* Y coordinate of the first point. \
 *x2* X coordinate of the second point. \
 *y2* Y coordinate of the second point. \
 *x3* X coordinate of the third point. \
 *y3* Y coordinate of the third point.

**Returns:**

This function always returns 0.

### int cucul\_fill\_triangle (cucul\_canvas\_t \* cv, int x1, int y1, int x2, int y2, int x3, int y3, unsigned long int ch)

This function never fails.

**Parameters:**

*cv* The handle to the libcucul canvas. \
 *x1* X coordinate of the first point. \
 *y1* Y coordinate of the first point. \
 *x2* X coordinate of the second point. \
 *y2* Y coordinate of the second point. \
 *x3* X coordinate of the third point. \
 *y3* Y coordinate of the third point. \
 *ch* UTF-32 character to be used to fill the triangle.

**Returns:**

This function always returns 0.
