API Docs for: 0.99.4
Show:

# PSEUDO

This element is used to provide a constructor for a circle.

A circle consists of all points with a given distance from one point. This point is called center, the distance is called radius. A circle can be constructed by providing a center and a point on the circle or a center and a radius (given as a number, function, line, or circle).

## Constructor

### `Circle`

(
• `center,radius`
)

#### Parameters:

• `center,radius` JXG.Point_number,JXG.Point,JXG.Line,JXG.Circle

The center must be given as a {@link JXG.Point}, see {@link JXG.providePoints}, but the radius can be given as a number (which will create a circle with a fixed radius), another {@link JXG.Point}, a {@link JXG.Line} (the distance of start and end point of the line will determine the radius), or another {@link JXG.Circle}.

#### Throws:

Exception:

If the element cannot be constructed with the given parent objects an exception is thrown.

#### Example:

``````// Create a circle providing two points
var p1 = board.create('point', [2.0, 2.0]),
p2 = board.create('point', [2.0, 0.0]),
c1 = board.create('circle', [p1, p2]);

// Create another circle using the above circle
var p3 = board.create('point', [3.0, 2.0]),
c2 = board.create('circle', [p3, c1]);
``````
``````// Create a circle providing two points
var p1 = board.create('point', [2.0, 2.0]),
c1 = board.create('circle', [p1, 3]);

// Create another circle using the above circle
var c2 = board.create('circle', [
function() { return [p1.X(), p1.Y() + 1];},
function() { return c1.Radius(); }
]);
``````

## Methods

### `_set`

(
• `property`
• `value`
)
private chainable
Sets the value of property property to value.

#### Parameters:

• `property` String
The property's name.
• `value` Object
The new value

### `addChild`

(
• `obj`
)
chainable
Add an element as a child to the current element. Can be used to model dependencies between geometry elements.

### `addDescendants`

(
• `obj`
)
private chainable
Adds the given object to the descendants list of this object and all its child objects.

#### Parameters:

• `obj` JXG.GeometryElement
The element that is to be added to the descendants list.

### `addParents`

(
• `parents`
)
JXG.Object chainable
Adds ids of elements to the array this.parents. This method needs to be called if some dependencies can not be detected automatically by JSXGraph. For example if a function graph is given by a function which referes to coordinates of a point, calling addParents() is necessary.

#### Parameters:

• `parents` Array
Array of elements or ids of elements. Alternatively, one can give a list of objects as parameters.

#### Returns:

JXG.Object: reference to the object itself.

#### Example:

``````// Movable function graph
var A = board.create('point', [1, 0], {name:'A'}),
B = board.create('point', [3, 1], {name:'B'}),
f = board.create('functiongraph', function(x) {
var ax = A.X(),
ay = A.Y(),
bx = B.X(),
by = B.Y(),
a = (by - ay) / ( (bx - ax) * (bx - ax) );
return a * (x - ax) * (x - ax) + ay;
}, {fixed: false});
f.addParents([A, B]);
``````

### `addRotation`

(
• `angle`
)
chainable
Rotate texts or images by a given degree. Works only for texts where JXG.Text#display equal to "internal".

#### Parameters:

• `angle` Number
The degree of the rotation (90 means vertical text).

#### See also:

• JXG.GeometryElement#rotate

### `addTransform`

(
• `transform`
)
chainable

Add transformations to this circle.

#### Parameters:

• `transform`

Either one {@link JXG.Transformation} or an array of {@link JXG.Transformation}s.

#### Returns:

JXG.Circle:

Reference to this circle object.

### `animate`

(
• `hash`
• `time`
• `[options]`
)
chainable
Animates properties for that object like stroke or fill color, opacity and maybe even more later.

#### Parameters:

• `hash` Object
Object containing properties with target values for the animation.
• `time` Number
Number of milliseconds to complete the animation.
• `[options]` Object optional
Optional settings for the animation:
• callback: A function that is called as soon as the animation is finished.

#### Returns:

JXG.GeometryElement: A reference to the object

### `Area`

()

Circle area

#### Returns:

Number:

area of the circle.

### `bounds`

()

Get bounding box of the circle.

Array:

[x1, y1, x2, y2]

### `clearTrace`

() chainable
Removes all objects generated by the trace function.

### `cloneToBackground`

() chainable
Copy the element to background. This is used for tracing elements.

### `countChildren`

() private
Counts the direct children of an object without counting labels.

#### Returns:

Number: Number of children

### `createGradient`

() private chainable
Creates a gradient nodes in the renderer.

#### See also:

• JXG.SVGRenderer#setGradient

### `createLabel`

() chainable
Creates a label element for this geometry element.

#### See also:

• #addLabelToElement

### `dash`

(
• `d`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1703`

Deprecated: Use {@link #setAttribute}

Set the dash type of an element

#### Parameters:

• `d` Number
Integer which determines the way of dashing an element's outline.

### `draggable`

() private
Decides whether an element can be dragged. This is used in {{#crossLink "JXG.GeometryElement/setPositionDirectly:method"}}JXG.GeometryElement#setPositionDirectly{{/crossLink}} methods where all parent elements are checked if they may be dragged, too.

### `fillColor`

(
• `fColor`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1657`

Deprecated: Use {@link #setAttribute}

Set the fillColor of an element

#### Parameters:

• `fColor` String
String which determines the fill color of an object.

### `generatePolynomial`

(
• `p`
)
private

Used to generate a polynomial for a point p that lies on this circle.

#### Parameters:

• `p` JXG.Point

The point for which the polynomial is generated.

#### Returns:

Array:

An array containing the generated polynomial.

### `generateRadiusSquared`

() private

Generate symbolic radius calculation for loci determination with Groebner basis algorithm.

#### Returns:

String:

String containing symbolic calculation of the circle's radius or an empty string if the radius can't be expressed in a polynomial equation.

### `getAttribute`

(
• `key`
)
Get the value of the property key.

#### Parameters:

• `key` String
The name of the property you are looking for

#### Returns:

The value of the property

### `getAttributes`

()
Retrieve a copy of the current visProp.

### `getLabelAnchor`

()
Returns the coords object where the label of the element shall be drawn. Differs in some cases from the values that getTextAnchor returns.

#### Returns:

JXG.Coords: JXG.Coords Place where the text shall be drawn.

### `getName`

()
Returns the elements name, used in JessieCode.

### `getParents`

()

Get data to construct this element. Data consists of the parent elements and static data like radius.

#### Returns:

Array:

data necessary to construct this element

### `getProperty`

() deprecated

Inherited from JXG.GeometryElement: `src/base/element.js:1237`

Deprecated: Use {@link JXG.GeometryElement#getAttribute}.

Deprecated alias for {{#crossLink "JXG.GeometryElement/getAttribute:method"}}JXG.GeometryElement#getAttribute{{/crossLink}}.

() deprecated

### `getTextAnchor`

()
Returns the coords object where a text that is bound to the element shall be drawn. Differs in some cases from the values that getLabelAnchor returns.

#### Returns:

JXG.Coords: JXG.Coords Place where the text shall be drawn.

### `getTpye`

()
The type of the element as used in {{#crossLink "JXG.Board/create:method"}}JXG.Board#create{{/crossLink}}.

### `handleSnapToGrid`

(
• `force`
)
chainable
Move an element to its nearest grid point. The function uses the coords object of the element as its actual position. If there is no coords object, nothing is done.

#### Parameters:

• `force` Boolean
force snapping independent from what the snaptogrid attribute says

#### Returns:

JXG.GeometryElement: Reference to this element

### `hasPoint`

(
• `x`
• `y`
)
private

Checks whether (x,y) is near the circle line or inside of the ellipse (in case JXG.Options.conic#hasInnerPoints is true).

#### Parameters:

• `x` Number

Coordinate in x direction, screen coordinates.

• `y` Number

Coordinate in y direction, screen coordinates.

#### Returns:

Boolean:

True if (x,y) is near the circle, False otherwise.

### `hideElement`

() chainable
Hide the element. It will still exist but not visible on the board.

### `highlight`

(
• `[force=false]`
)
chainable
Highlights the element.

#### Parameters:

• `[force=false]` Boolean optional
Force the highlighting

### `highlightFillColor`

(
• `fColor`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1673`

Deprecated: Use {@link #setAttribute}

Set the highlightFillColor of an element

#### Parameters:

• `fColor` String
String which determines the fill color of an object when its highlighted.

### `highlightStrokeColor`

(
• `sColor`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1611`

Deprecated: Use {@link #setAttribute}

Set the highlightStrokeColor of an element

#### Parameters:

• `sColor` String
String which determines the stroke color of an object when its highlighted.

### `labelColor`

(
• `lColor`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1688`

Deprecated: Use {@link #setAttribute}

Set the labelColor of an element

#### Parameters:

• `lColor` String
String which determines the text color of an object's label.

() private

Returns 1.

() private

Returns 0.

### `noHighlight`

() chainable
Uses the "normal" properties of the element.

### `normalize`

() private chainable
Normalize the element's standard form.

### `notifyParents`

(
• `contentStr`
)
private chainable

Finds dependencies in a given term and resolves them by adding the elements referenced in this string to the circle's list of ancestors.

#### Parameters:

• `contentStr` String

### `prepareUpdate`

() private chainable
Notify all child elements for updates.

### `Radius`

(
• `[value]`
)

Calculates the radius of the circle or sets the radius.

#### Parameters:

• `[value]` optional

Set new radius

#### Returns:

Number:

The radius of the circle

### `remove`

() chainable
Removes the element from the construction. This only removes the SVG or VML node of the element and its label (if available) from the renderer, to remove the element completely you should use {{#crossLink "JXG.Board/removeObject:method"}}JXG.Board#removeObject{{/crossLink}}.

### `removeChild`

(
• `obj`
)
chainable
Remove an element as a child from the current element.

### `removeDescendants`

(
• `obj`
)
private chainable
Removes the given object from the descendants list of this object and all its child objects.

#### Parameters:

• `obj` JXG.GeometryElement
The element that is to be removed from the descendants list.

### `resolveShortcuts`

(
• `properties`
)
Resolves property shortcuts like color and expands them, e.g. strokeColor and fillColor. Writes the expanded properties back to the given properties.

#### Parameters:

• `properties` Object

#### Returns:

Object: The given parameter with shortcuts expanded.

### `setArrow`

(
• `firstArrow`
• `lastArrow`
)
chainable
Determines whether the element has arrows at start or end of the arc.

#### Parameters:

• `firstArrow` Boolean
True if there is an arrow at the start of the arc, false otherwise.
• `lastArrow` Boolean
True if there is an arrow at the end of the arc, false otherwise.

### `setAttribute`

(
• `attributes`
)
chainable
Sets an arbitrary number of attributes.

#### Parameters:

• `attributes` Object
An object with attributes.

#### Example:

``````// Set property directly on creation of an element using the attributes object parameter
var board = JXG.JSXGraph.initBoard('jxgbox', {boundingbox: [-1, 5, 5, 1]};
var p = board.create('point', [2, 2], {visible: false});

// Now make this point visible and fixed:
p.setAttribute({
fixed: true,
visible: true
});``````

### `setDash`

(
• `dash`
)
private chainable
Set the dash style of an object. See undefined for a list of available dash styles. You should use undefined instead of this method.

#### Parameters:

• `dash` Number
Indicates the new dash style

### `setLabel`

(
• `str`
)
chainable
Sets a label and it's text If label doesn't exist, it creates one

### `setLabelText`

(
• `str`
)
chainable
Updates the element's label text, strips all html.

### `setName`

(
• `str`
)
chainable
Updates the element's label text and the element's attribute "name", strips all html.

### `setParents`

(
• `parents`
)
JXG.Object chainable
Sets ids of elements to the array this.parents. First, this.parents is cleared. See undefined.

#### Parameters:

• `parents` Array
Array of elements or ids of elements. Alternatively, one can give a list of objects as parameters.

#### Returns:

JXG.Object: reference to the object itself.

### `setPosition`

(
• `method`
• `coords`
)
chainable
Translates the object by (x, y). In case the element is defined by points, the defining points are translated, e.g. a circle constructed by a center point and a point on the circle line.

#### Parameters:

• `method` Number
The type of coordinates used here. Possible values are {@link JXG.COORDS_BY_USER} and {@link JXG.COORDS_BY_SCREEN}.
• `coords` Array
array of translation vector.

#### Returns:

JXG.GeometryElement: Reference to the element object.

### `setPositionDirectly`

(
• `method`
• `coords`
• `oldcoords`
)
chainable
Moves an by the difference of two coordinates.

#### Parameters:

• `method` Number
The type of coordinates used here. Possible values are {@link JXG.COORDS_BY_USER} and {@link JXG.COORDS_BY_SCREEN}.
• `coords` Array
coordinates in screen/user units
• `oldcoords` Array
previous coordinates in screen/user units

#### Returns:

JXG.GeometryElement: this element

### `setProperty`

() deprecated

Inherited from JXG.GeometryElement: `src/base/element.js:1030`

Deprecated: Use {@link JXG.GeometryElement#setAttribute}.

Deprecated alias for {{#crossLink "JXG.GeometryElement/setAttribute:method"}}JXG.GeometryElement#setAttribute{{/crossLink}}.

### `setRadius`

(
• `r`
)
chainable

Set a new radius, then update the board.

#### Parameters:

• `r`

A string, function or number describing the new radius.

#### Returns:

JXG.Circle:

Reference to this circle

### `shadow`

(
• `s`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1733`

Deprecated: Use {@link #setAttribute}

Set the shadow of an element

#### Parameters:

• `s` Boolean
Boolean which determines whether the element has a shadow or not.

### `showElement`

() chainable
Make the element visible.

### `snapToGrid`

() chainable
Snaps the element to the grid. Only works for points, lines and circles. Points will snap to the grid as defined in their properties undefined and undefined. Lines and circles will snap their parent points to the grid, if they have undefined set to true.

#### Returns:

JXG.GeometryElement: Reference to the element.

### `snapToPoints`

() chainable
Snaps the element to points. Only works for points. Points will snap to the next point as defined in their properties undefined and undefined. Lines and circles will snap their parent points to points.

#### Returns:

JXG.GeometryElement: Reference to the element.

### `strokeColor`

(
• `sColor`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1626`

Deprecated: Use {@link #setAttribute}

Set the strokeColor of an element

#### Parameters:

• `sColor` String
String which determines the stroke color of an object.

### `strokeWidth`

(
• `width`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1641`

Deprecated: Use {@link #setAttribute}

Set the strokeWidth of an element

#### Parameters:

• `width` Number
Integer which determines the stroke width of an outline.

### `toJSON`

() private
EXPERIMENTAL. Generate JSON object code of visProp and other properties.

#### Returns:

JSON string containing element's properties.

### `update`

() chainable
Update method. Position and content of the element are updated. The element is redrawn by a subsequent call of {@see #updateRenderer}. Can be used sometimes to commit changes to the object.

### `updateQuadraticform`

() private chainable

Updates this circle's undefined.

### `updateRenderer`

() private chainable
Provide updateRenderer method.

### `updateStdform`

() private chainable

Updates the stdform derived from the position of the center and the circle's radius.

### `visible`

(
• `v`
)
deprecated chainable

Inherited from JXG.GeometryElement: `src/base/element.js:1718`

Deprecated: Use {@link #setAttribute}

Set the visibility of an element

#### Parameters:

• `v` Boolean
Boolean which determines whether the element is drawn.

### `X`

(
• `t`
)

Treats the circle as parametric curve running from 0 to 1 and calculates its X coordinate.

#### Parameters:

• `t` Number

Number between 0 and 1.

#### Returns:

Number:

X(t)= radius*cos(t)+centerX.

### `Y`

(
• `t`
)

Treats the circle as parametric curve running from 0 to 1 and calculates its Y coordinate.

#### Parameters:

• `t` Number

Number between 0 and 1.

#### Returns:

Number:

X(t)= radius*sin(t)+centerY.

### `Z`

(
• `t`
)

Treat the circle as parametric curve running from 0 to 1 and calculates its Z coordinate.

#### Parameters:

• `t` Number

ignored

Number:

1.0

## Properties

### `_org_type`

Number final
Original type of the element at construction time. Used for removing glider property.

### `_pos`

Number private
The position of this element inside the undefined.

Default: -1

### `ancestors`

Object
Elements on which this element depends on are stored here.

### `baseElement`

JXG.GeometryElement private

Default: null

### `board`

JXG.Board
Reference to the board associated with the element.

### `center`

JXG.Point

The circles center. Do not set this parameter directly as it will break JSXGraph's update system.

### `childElements`

Object
Stores all dependent objects to be updated when this point is moved.

### `circle`

JXG.Circle

only set if method equals 'pointLine'. Do not set this parameter directly as it will break JSXGraph's update system.

Default: null

• #method

### `descendants`

Object
Elements depending on this element are stored here.

### `dump`

Boolean
The element is saved with an explicit entry in the file (true) or implicitly via a composition.

Default: true

### `elementClass`

Number final
The element's class.

### `elType`

String
The string used with {{#crossLink "JXG.Board/create:method"}}JXG.Board#create{{/crossLink}}

### `hasLabel`

Boolean
If element has a label subelement then this property will be set to true.

Default: false

### `highlighted`

Boolean
True, if the element is currently highlighted.

Default: false

### `id`

String
Unique identifier for the element. Equivalent to id-attribute of renderer element.

### `isDraggable`

Boolean
Controls if this element can be dragged. In GEONExT only free points and gliders can be dragged.

Default: false

### `isReal`

Boolean
If element is in two dimensional real space this is true, else false.

Default: true

### `lastDragTime`

Date
Time stamp containing the last time this element has been dragged.

Default: creation time

### `line`

JXG.Line

only set if method equals 'pointLine'. Do not set this parameter directly as it will break JSXGraph's update system.

Default: null

• #method

### `method`

String

Stores the given method. Can be

• 'twoPoints' which means the circle is defined by its center and a point on the circle.
• 'pointRadius' which means the circle is defined by its center and its radius given in user units or as term.
• 'pointLine' which means the circle is defined by its center and its radius given by the distance from the startpoint and the endpoint of the line.
• 'pointCircle' which means the circle is defined by its center and its radius given by the radius of another circle.

• #center
• #point2
• #radius
• #line
• #circle

### `methodMap`

Object
The methodMap determines which methods can be called from within JessieCode and under which name it can be used. The map is saved in an object, the name of a property is the name of the method used in JessieCode, the value of a property is the name of the method in JavaScript.

### `mouseover`

Boolean
Is the mouse over this element?

Default: false

### `name`

String
Not necessarily unique name for the element.

Default: Name generated by {@link JXG.Board#generateName}.

### `needsUpdate`

Boolean
Controls if updates are necessary

Default: true

### `notExistingParents`

Object
Stores all Intersection Objects which in this moment are not real and so hide this element.

### `numTraces`

Number
Counts the number of objects drawn as part of the trace of the element.

### `parents`

Object
Ids of elements on which this element depends directly are stored here.

### `point2`

JXG.Point private

• #method

### `quadraticform`

Array
Quadratic form representation of circles (and conics)

Default: [[1,0,0],[0,1,0],[0,0,1]]

### `radius`

Number

only set if method equals 'pointRadius'

Default: null

• #method

### `rendNode`

Object
Stores the rendering node for the element.

### `stdform`

Array
[c,b0,b1,a,k,r,q0,q1] See A.E. Middleditch, T.W. Stacey, and S.B. Tor: "Intersection Algorithms for Lines and Circles", ACM Transactions on Graphics, Vol. 8, 1, 1989, pp 25-40. The meaning of the parameters is: Circle: points p=[p0,p1] on the circle fulfill a<p,p> + <b,p> + c = 0 For convenience we also store r: radius k: discriminant = sqrt(<b,b>-4ac) q=[q0,q1] center Points have radius = 0. Lines have radius = infinity. b: normalized vector, representing the direction of the line. Should be put into Coords, when all elements possess Coords.

Default: [1, 0, 0, 0, 1, 1, 0, 0]

### `subs`

Object
Subs contains the subelements, created during the create method.

### `symbolic`

Object
Stores variables for symbolic computations

### `traces`

Object
Keeps track of all objects drawn as part of the trace of the element.

### `transformations`

Array
Stores the transformations which are applied during update in an array

### `type`

Number final
Type of the element.

### `visProp`

Object
An associative array containing all visual properties.

Default: empty object

## Events

### `attribute`

Notify everytime an attribute is changed.

#### Event Payload:

• `o` Object
A list of changed attributes and their new value.
• `el` Object
Reference to the element

### `attribute:<attribute>`

This is a generic event handler. It exists for every possible attribute that can be set for any element, e.g. if you want to be notified everytime an element's strokecolor is changed, is the event attribute:strokecolor.

#### Event Payload:

• `val` Object
The old value.
• `nval` Object
The new value
• `el` Object
Reference to the element

### `down`

Whenever the user starts to touch or click an element.

#### Event Payload:

• `e` Event
The browser's event object.

### `drag`

This event is fired whenever the user drags an element.

#### Event Payload:

• `e` Event
The browser's event object.

### `mousedown`

Whenever the user starts to click an element.

#### Event Payload:

• `e` Event
The browser's event object.

### `mousedrag`

This event is fired whenever the user drags the element with a mouse.

#### Event Payload:

• `e` Event
The browser's event object.

### `mousemove`

This event is fired whenever the user is moving the mouse over an element.

#### Event Payload:

• `e` Event
The browser's event object.

### `mouseout`

This event is fired whenever the user puts the mouse away from an element.

#### Event Payload:

• `e` Event
The browser's event object.

### `mouseover`

This event is fired whenever the user puts the mouse over an element.

#### Event Payload:

• `e` Event
The browser's event object.

### `mouseup`

Whenever the user releases the mousebutton over an element.

#### Event Payload:

• `e` Event
The browser's event object.

### `move`

This event is fired whenever the user is moving over an element.

#### Event Payload:

• `e` Event
The browser's event object.

### `out`

This event is fired whenever the user is leaving an element.

#### Event Payload:

• `e` Event
The browser's event object.

### `over`

This event is fired whenever the user is hovering over an element.

#### Event Payload:

• `e` Event
The browser's event object.

### `touchdown`

Whenever the user starts to touch an element.

#### Event Payload:

• `e` Event
The browser's event object.

### `touchdrag`

This event is fired whenever the user drags the element on a touch device.

#### Event Payload:

• `e` Event
The browser's event object.

### `touchup`

Whenever the user stops touching an element.

#### Event Payload:

• `e` Event
The browser's event object.

### `up`

Whenever the user stops to touch or click an element.

#### Event Payload:

• `e` Event
The browser's event object.