for connected embedded systems
![]() |
![]() |
![]() |
![]() |
PgDrawEllipse(), PgDrawEllipseCx()
Draw an ellipse
Synopsis:
int PgDrawEllipse( PhPoint_t const *center,
PhPoint_t const *radii,
unsigned int flags );
int PgDrawEllipseCx( void *dc,
PhPoint_t const *center,
PhPoint_t const *radii,
unsigned int flags );
Arguments:
- dc
- PgDrawEllipseCx() only.
A void pointer to any type of draw context. Examples of draw contexts are:
- a PhDrawContext_t returned by PhDCCreate()
- a PmMemoryContext_t returned by PmMemCreateMC()
- a PpPrintContext_t returned by PpCreatePC()
- a PdOffscreenContext_t returned by PdCreateOffscreenContext()
- center
- Defines the ellipse's center.
- radii
- Defines the ellipse's x and y radii.
- flags
- Must be one of the following:
- Pg_DRAW_STROKE -- draw as a line.
- Pg_DRAW_FILL -- fill the ellipse.
- Pg_DRAW_FILL_STROKE -- fill the ellipse, then stroke it.
To have the function interpret the center and radii arguments as the upper-left and lower-right coordinates respectively, OR flags with Pg_EXTENT_BASED.
Library:
ph
Description:
These functions build a command in the draw buffer to draw an ellipse. PgDrawEllipse() works on the current draw context, while you can specify the draw context for PgDrawEllipseCx().
Returns:
- 0
- Success.
- -1
- The draw buffer is too small to hold the current draw state and the draw command.
Examples:
The following example:
DrawStrokeElli() {
PhPoint_t c = { 80, 60 };
PhPoint_t r = { 72, 52 };
PgSetStrokeColor( Pg_WHITE );
PgDrawEllipse( &c, &r, Pg_DRAW_STROKE );
}
will draw:
The following example:
DrawFillElli() {
PhPoint_t c = { 80, 60 };
PhPoint_t r = { 72, 52 };
PgSetFillColor( Pg_PURPLE );
PgDrawEllipse( &c, &r, Pg_DRAW_FILL );
}
will draw:
The following example:
DrawFillStrokeElli() {
PhPoint_t c = { 80, 60 };
PhPoint_t r = { 72, 52 };
PgSetFillColor( Pg_PURPLE );
PgSetStrokeColor( Pg_WHITE );
PgDrawEllipse( &c, &r, Pg_DRAW_FILL_STROKE );
}
will draw:
Classification:
Photon
| Safety: | |
|---|---|
| Interrupt handler | No |
| Signal handler | No |
| Thread | No |
See also:
PgDrawRoundRect*(), PgSetFillColor*(), PgSetFillDither*(), PgSetFillTransPat*(), PgSetStrokeColor*(), PgSetStrokeDither*(), PgSetStrokeTransPat*(), PhPoint_t
"Arcs, ellipses, polygons, and rectangles" in the Raw Drawing and Animation chapter of the Photon Programmer's Guide
![]() |
![]() |
![]() |
![]() |

![[Previous]](../prev.gif)
![[Contents]](../contents.gif)
![[Index]](../keyword_index.gif)
![[Next]](../next.gif)