Index of geometry

Contents

List of Anonymous functions
typedef real abs(pair)
typedef real centerfunction(real, real, real)
typedef pair convert(pair)
typedef real dot(pair, pair)
typedef pair polar(real, real)
typedef path polarconicroutine(conic, real, real, int, bool)
List of structures
struct abscissa
struct arc
struct bqe
struct circle
struct conic
struct coordsys
struct ellipse
struct hyperbola
struct inversion
struct line
struct mass
struct parabola
struct point
struct segment
struct side
struct triangle
struct trilinear
struct vector
struct vertex
List of constants
line Ox
line Oy
bool byfoci,byvertices
coordsys defaultcoordsys
polarconicroutine fromCenter
polarconicroutine fromFocus
line hline
int relativesystem,curvilinearsystem,angularsystem,nodesystem
line vline
List of variables
pen addpenarc
pen addpenline
int circlenodesnumberfactor
int conicnodesfactor
coordsys currentcoordsys
polarconicroutine currentpolarconicroutine
string defaultmassformat
int ellispenodesnumberfactor
real epsgeo
int hyperbolanodesnumberfactor
real linemargin
point origin
int parabolanodesnumberfactor
real perpfactor
List of functions
line Ox(coordsys)
line Oy(coordsys)
real abs(coordsys,pair)
real abs(explicit point)
void addMargins(picture,real,real,real,real)
line altitude(vertex)
line altitude(vertex)
abscissa angabscissa(arc,point)
abscissa angabscissa(circle,point)
abscissa angabscissa(conic,point)
abscissa angabscissa(ellipse,point,polarconicroutine)
abscissa angabscissa(hyperbola,point,polarconicroutine)
abscissa angabscissa(parabola,point)
abscissa angabscissa(real,polarconicroutine)
real angle(a)
real angle(explicit point,coordsys,bool)
real angle(line,coordsys)
real angle(line,line)
real angle(vector,coordsys,bool)
point angpoint(arc,real)
point angpoint(conic,real)
point angpoint(explicit circle,real)
point angpoint(explicit ellipse,real,polarconicroutine)
point angpoint(explicit hyperbola,real,polarconicroutine)
point angpoint(explicit parabola,real)
triangle anticomplementary(triangle)
triangle antipedal(triangle,point)
arc arc(ellipse,abscissa,abscissa,bool)
arc arc(ellipse,point,point,bool)
arc arc(ellipse,real,real,polarconicroutine,bool)
arc arc(explicit arc,abscissa,abscissa)
arc arc(explicit arc,point,point)
arc arccircle(point,point,point)
arc arccircle(point,point,real,bool)
path arcfromcenter(ellipse,real,real,int,bool)
path arcfromcenter(explicit conic,real,real,int,bool)
path arcfromcenter(hyperbola,real,real,int,bool)
path arcfromfocus(conic,real,real,int,bool)
real arclength(arc)
real arclength(circle)
real arclength(ellipse)
real arclength(ellipse,real,real,bool,polarconicroutine)
real arclength(parabola p)
real arclength(parabola,real)
real arclength(parabola,real,real)
int arcnodesnumber(explicit arc)
arc arcsubtended(point,point,real)
point arcsubtendedcenter(point,point,real)
pair attract(pair,path,real)
point attract(point,path,real)
real[][] bangles(picture,hyperbola)
real[] bangles(picture,parabola)
bool between(point,point,point)
real binomial(real,real)
line bisector(line,line,real,bool)
line bisector(point,point,point,point,real)
line bisector(point,point,real)
line bisector(segment,real)
line bisector(side)
line bisector(vertex,real)
point bisectorpoint(side)
bool bool samecoordsys(bool...point[])
bqe bqe(coordsys,real,real,real,real,real,real)
bqe bqe(point,point,point,point,point)
bqe canonical(bqe)
coordsys canonicalcartesiansystem(ellipse)
coordsys canonicalcartesiansystem(hyperbola)
coordsys canonicalcartesiansystem(hyperbola)
coordsys canonicalcartesiansystem(parabola)
coordsys cartesiansystem(pair,pair,pair)
real centerToFocus(ellipse,real)
point centroid(point,point,point)
point centroid(triangle)
point cevian(side,point)
triangle cevian(triangle,point)
line cevian(vertex,point)
bqe changecoordsys(coordsys,bqe)
conic changecoordsys(coordsys,conic)
line changecoordsys(coordsys,line)
point changecoordsys(coordsys,point)
vector changecoordsys(coordsys,vector)
circle circle(explicit point,real)
circle circle(inversion)
circle circle(point,point)
circle circle(point,point,point)
circle circle(segment)
circle circle(triangle)
int circlenodesnumber(real)
int circlenodesnumber(real,real,real)
point circumcenter(point,point,point)
point circumcenter(triangle)
circle circumcircle(point,point,point)
circle circumcircle(triangle)
void clipdraw(picture,Label,path,align,pen,arrowbar,arrowbar,real,real,Label,marker)
bool collinear(vector,vector)
path compassmark(pair,pair,real,real)
arc complementary(arc)
line complementary(explicit line)
line[] complementary(explicit segment)
bool concurrent(...line[])
conic conic(bqe)
conic conic(point,point,point,point,point)
int conicnodesnumber(conic,real,real)
string conictype(bqe)
point conj(explicit point)
vector conj(explicit vector)
hyperbola conj(hyperbola)
coordsys coordsys(conic)
coordsys coordsys(ellipse)
coordsys coordsys(line)
abscissa curabscissa(arc,point)
abscissa curabscissa(circle,point)
abscissa curabscissa(conic,point)
abscissa curabscissa(ellipse,point)
abscissa curabscissa(line,point)
abscissa curabscissa(parabola,point)
abscissa curabscissa(real)
point curpoint(arc,real)
point curpoint(conic,real)
point curpoint(explicit circle,real)
point curpoint(explicit ellipse,real)
point curpoint(explicit parabola,real)
point curpoint(line,real)
bool defined(pair)
real degrees(arc)
real degrees(explicit point,coordsys,bool)
real degrees(line,coordsys,bool)
real degrees(line,line)
real degrees(vector,coordsys,bool)
vector dir(vertex)
void distance(picture pic,Label,point,point,bool,real,pen,pen,arrow)
real distance(point,line)
void dot(picture,Label,explicit mass,align,string,pen)
void dot(picture,Label,explicit point,align,string,pen)
void dot(picture,triangle,pen)
real dot(point,explicit pair)
real dot(point,point)
void draw(picture,Label,arc,align,pen,arrowbar,arrowbar,margin,Label,marker)
void draw(picture,Label,circle,align,pen,arrowbar,arrowbar,margin,Label,marker)
void draw(picture,Label,ellipse,align,pen,arrowbar,arrowbar,margin,Label,marker)
void draw(picture,Label,explicit conic,align,pen,arrowbar,arrowbar,margin,Label,marker)
void draw(picture,Label,hyperbola,align,pen,arrowbar,arrowbar,margin,Label,marker)
void draw(picture,Label,line,bool,bool,align,pen,arrowbar,Label,marker)
void draw(picture,Label,parabola,align,pen,arrowbar,arrowbar,margin,Label,marker)
void draw(picture,Label[], line[], align,pen,arrowbar,Label,marker)
void draw(picture,Label[], line[], align,pen[], arrowbar,Label,marker)
void draw(picture,triangle,pen,marker)
void draw(picture,triangle[],pen,marker)
void drawline(picture,triangle,pen)
real elle(real,real)
ellipse ellipse(bqe)
ellipse ellipse(point,point,point)
ellipse ellipse(point,point,point,point,point)
ellipse ellipse(point,point,real)
ellipse ellipse(point,real,real,real)
int ellipsenodesnumber(real,real)
int ellipsenodesnumber(real,real,real)
bqe equation(ellipse)
bqe equation(explicit conic)
bqe equation(hyperbola)
bqe equation(parabola)
point excenter(point,point,point)
point excenter(side,triangle)
circle excircle(point,point,point)
circle excircle(side,triangle)
real exradius(point,point,point)
real exradius(side,triangle)
line extend(line)
triangle extouch(side)
triangle extouch(triangle)
triangle extouch(triangle)
point[] fermat(triangle)
bool finite(explicit point)
real focusToCenter(ellipse,real)
point foot(side)
point foot(vertex)
point gergonne(triangle)
line hline(coordsys)
transform hprojection(line,bool)
hyperbola hyperbola(bqe)
hyperbola hyperbola(point,point,point,point,point)
hyperbola hyperbola(point,point,real,bool)
hyperbola hyperbola(point,real,real,real)
int hyperbolanodesnumber(hyperbola,real,real)
point incenter(point,point,point)
point incenter(triangle)
circle incircle(point,point,point)
circle incircle(triangle)
real inradius(point,point,point)
real inradius(triangle)
bool inside(ellipse,point)
bool inside(parabola,point)
real[] intersect(path,explicit pair)
real[] intersect(path,explicit point)
point intersectionpoint(line,line)
point[] intersectionpoints(arc,arc)
point[] intersectionpoints(bqe,bqe)
point[] intersectionpoints(circle,circle)
point[] intersectionpoints(circle,ellipse)
point[] intersectionpoints(circle,hyperbola)
point[] intersectionpoints(circle,parabola)
point[] intersectionpoints(conic,arc)
point[] intersectionpoints(conic,conic)
point[] intersectionpoints(ellipse,circle)
point[] intersectionpoints(ellipse,ellipse)
point[] intersectionpoints(ellipse,hyperbola)
point[] intersectionpoints(ellipse,parabola)
point[] intersectionpoints(hyperbola,circle)
point[] intersectionpoints(hyperbola,ellipse)
point[] intersectionpoints(hyperbola,hyperbola)
point[] intersectionpoints(hyperbola,parabola)
point[] intersectionpoints(line,arc)
point[] intersectionpoints(line,circle)
point[] intersectionpoints(line,conic)
point[] intersectionpoints(line,ellipse)
point[] intersectionpoints(line,hyperbola)
point[] intersectionpoints(line,parabola)
point[] intersectionpoints(line,path)
pair[] intersectionpoints(pair,pair,real,real,real,real,real,real)
pair[] intersectionpoints(pair,pair,real[])
point[] intersectionpoints(parabola,circle)
point[] intersectionpoints(parabola,ellipse)
point[] intersectionpoints(parabola,hyperbola)
point[] intersectionpoints(parabola,parabola)
point[] intersectionpoints(triangle,conic,bool)
point[] intersectionpoints(triangle,line,bool)
point intouch(side)
triangle intouch(triangle)
point inverse(real k,point,point)
circle inverse(real,point,circle)
circle inverse(real,point,line)
arc inverse(real,point,segment)
inversion inversion(circle)
inversion inversion(circle,circle)
inversion inversion(circle,circle,circle)
inversion inversion(real,point)
inversion inversion(real,point)
point isogonal(side,point)
triangle isogonal(triangle,point)
line isogonal(vertex,point)
point isogonalconjugate(triangle,point)
point isotomic(side,point)
triangle isotomic(triangle,point)
line isotomic(vertex,point)
point isotomicconjugate(triangle,point)
bool isparabola(bqe)
void label(picture,Label,Label,Label,triangle,real,real,pen,filltype)
void label(picture,Label,explicit mass,align,string,pen,filltype)
real length(explicit point)
real length(segment)
line line(coordsys,real,real)
line line(coordsys,real,real,real)
line line(explicit side)
line line(point,bool,point,bool)
line line(real,point)
line line(segment)
real linemargin()
pair locate(explicit vector)
point locate(pair)
pair locate(point)
void lvoid label(picture,Label,vertex,pair,real,pen,filltype)
void markangle(picture,Label,int,real,real,explicit line,explicit line,explicit pair,arrowbar,pen,filltype,margin,marker)
void markangle(picture,Label,int,real,real,explicit line,explicit line,explicit vector,arrowbar,pen,filltype,margin,marker)
void markangle(picture,Label,int,real,real,line,line,arrowbar,pen,filltype,margin,marker)
void markarc(picture,Label,int,real,real,arc,arrowbar,pen,pen,margin,marker)
void markrightangle(picture,point,point,point,real,pen,margin,filltype)
mass mass(coordsys,explicit pair,real)
mass mass(explicit point)
mass mass(point,real)
mass masscenter(... mass[])
string massformat(string,string,mass)
triangle medial(triangle t)
line median(side)
line median(vertex)
point midpoint(segment)
point midpoint(side)
abscissa nodabscissa(arc,point)
abscissa nodabscissa(circle,point)
abscissa nodabscissa(conic,point)
abscissa nodabscissa(ellipse,point)
abscissa nodabscissa(line,point)
abscissa nodabscissa(parabola,point)
abscissa nodabscissa(real)
bool onpath(picture,path,point,pen)
vertex opposite(side)
side opposite(vertex)
point origin(coordsys)
triangle orthic(triangle)
point orthocentercenter(point,point,point)
point orthocentercenter(triangle)
pair pair coordinates(point)
parabola parabola(bqe)
parabola parabola(point,line)
parabola parabola(point,point)
parabola parabola(point,point,point,line)
parabola parabola(point,point,point,point,point)
parabola parabola(point,real,real)
int parabolanodesnumber(parabola,real,real)
bool parallel(line,line)
line parallel(point,explicit pair)
line parallel(point,explicit vector)
line parallel(point,line)
triangle pedal(triangle,point)
triangle pedal(triangle,point)
bool perpendicular(line,line)
line perpendicular(point,explicit pair)
line perpendicular(point,explicit vector)
line perpendicular(point,line)
void perpendicularmark(picture,line,line,real,pen,int,margin,filltype)
void perpendicularmark(picture,point,explicit pair,explicit pair,real,pen,margin,filltype)
void perpendicularmark(picture,point,explicit pair,path,real,pen,margin,filltype)
void perpendicularmark(picture,point,vector,path,real,pen,margin,filltype)
void perpendicularmark(picture,point,vector,vector,real,pen,margin,filltype)
point point(arc,abscissa)
point point(arc,real)
point point(circle,abscissa)
point point(circle,explicit vector)
point point(circle,point)
abscissa point(conic,point)
point point(coordsys,explicit point,real)
point point(coordsys,pair,real)
point point(ellipse,abscissa)
circle point(explicit circle,explicit real)
point point(explicit conic,explicit real)
point point(explicit ellipse,explicit real)
point point(explicit hyperbola,explicit real)
point point(explicit mass)
point point(explicit pair,real)
point point(explicit parabola,explicit real)
point point(explicit vector)
point point(explicit vertex)
point point(hyperbola,abscissa)
point point(line,abscissa)
point point(line,real)
point point(parabola,abscissa)
polarconicroutine polarconicroutine(ellipse)
transform projection(line)
transform projection(line,line,bool)
transform projection(point,point)
transform projection(point,point,point,point,bool)
point radicalcenter(circle,circle)
point radicalcenter(circle,circle,circle)
line radicalline(circle,circle)
real rd(real,real,real)
real[] realquarticroots(real,real,real,real,real)
transform reflect(line)
transform reflect(line,line)
abscissa relabscissa(arc,point)
abscissa relabscissa(circle,point)
abscissa relabscissa(conic,point)
abscissa relabscissa(ellipse,point)
abscissa relabscissa(line,point)
abscissa relabscissa(real)
point relpoint(arc,real)
point relpoint(explicit circle,real)
point relpoint(explicit conic,explicit real)
point relpoint(explicit ellipse,real)
point relpoint(explicit hyperbola,real)
point relpoint(explicit parabola,real)
point relpoint(line,real)
arc reverse(arc)
line reverse(line)
real rf(real,real,real)
transform rotate(explicit vector)
transforms rotateO(real)
bool samecoordsys(bool...bqe[])
point[] sameside(point,line,line)
bool sameside(point,point,line)
bool sameside(point,point,point)
transform scale(real,line,line,bool)
transform scale(real,point)
transform scale(real,point,point,point,point,bool)
transform scaleO(real)
line sector(int,int,line,line,real,bool)
segment segment(explicit side)
segment segment(line)
segment segment(point,point)
int sgnd(real)
real sharpangle(line,line)
real sharpdegrees(line,line)
void show(Label,pen,arrowbar)
void show(picture,Label,Label,Label,Label,Label,Label,triangle,pen,filltype)
void show(picture,Label,Label,Label,coordsys,pen,pen,pen,pen,pen)
void show(picture,line,pen)
bool simeq(point,point,real)
point[] standardizecoordsys(coordsys,bool...point[])
triangle symmedial(triangle)
point symmedian(side)
point symmedian(triangle)
line symmedian(vertex)
line tangent(circle,abscissa)
line tangent(circle,explicit vector)
line tangent(circle,point)
line tangent(ellipse,abscissa)
line tangent(explicit arc,abscissa)
line tangent(explicit arc,point)
line tangent(hyperbola,abscissa)
line tangent(parabola,abscissa)
triangle tangential(triangle)
line[] tangents(circle,point)
line[] tangents(ellipse,point)
line[] tangents(hyperbola,point)
line[] tangents(parabola,point)
triangle triangle(line,line,line)
triangle triangleAbc(real,real,real,real,point)
triangle triangleabc(real,real,real,real,point)
int[] tricoef(side)
trilinear trilinear(triangle,centerfunction,real,real,real)
trilinear trilinear(triangle,point)
trilinear trilinear(triangle,real,real,real)
point trilinear(triangle,real,real,real)
vector unit(point)
vector unit(vector)
vector vector(coordsys, pair)
vector vector(point)
line vline(coordsys)
transform vprojection(line,bool)
void write(explicit segment)
void write(line)
void write(trilinear)
transform xscale(real,point)
transform xscaleO(real)
transform yscale(real,point)
transform yscaleO(real)
List of operators
bool !=(explicit point,explicit point)
bool !=(line,line)
pair *(coordsys,pair)
path *(coordsys,path)
point *(explicit point,explicit pair)
point *(explicit point,explicit point)
vector *(explicit point,explicit vector)
circle *(inversion,circle)
circle *(inversion,line)
point *(inversion,point)
arc *(inversion,segment)
path *(inversion,triangle)
line *(point,line)
abscissa *(real,abscissa)
ellipse *(real,ellipse)
arc *(real,explicit arc)
circle *(real,explicit circle)
point *(real,explicit point)
vector *(real,explicit vector)
line *(real,line)
mass *(real,mass)
vector *(transform t,explicit vector)
ellipse *(transform,circle)
conic *(transform,conic)
coordsys *(transform,coordsys)
ellipse *(transform,ellipse)
arc *(transform,explicit arc)
point *(transform,explicit point)
hyperbola *(transform,hyperbola)
line *(transform,line)
mass *(transform,mass)
parabola *(transform,parabola)
triangle *(transform,triangle)
conic +(conic,explicit pair)
conic +(conic,explicit point)
conic +(conic,vector)
arc +(explicit arc,point)
circle +(explicit circle,explicit point)
circle +(explicit circle,pair)
circle +(explicit circle,vector)
point +(explicit pair,explicit vector)
point +(explicit point,explicit pair)
point +(explicit point,explicit point)
point +(explicit point,explicit vector)
vector +(explicit vector,explicit vector)
line +(line,point)
mass +(mass,mass)
abscissa +(real,explicit abscissa)
conic -(conic,explicit pair)
conic -(conic,explicit point)
conic -(conic,vector)
abscissa -(explicit abscissa a)
circle -(explicit circle,explicit point)
circle -(explicit circle,pair)
circle -(explicit circle,vector)
point -(explicit pair,explicit vector)
point -(explicit point)
point -(explicit point,explicit pair)
point -(explicit point,explicit point)
point -(explicit point,explicit vector)
vector -(explicit vector)
vector -(explicit vector, explicit vector)
line -(line,vector)
ellipse /(ellipse,real)
circle /(explicit circle,real)
point /(explicit point,real)
vector /(explicit vector,real)
line /(line,real)
pair /(pair,coordsys)
arc /(real,explicit arc)
point /(real,explicit point)
bool ==(coordsys,coordsys)
bool ==(explicit point,explicit point)
bool ==(explicit vector,explicit vector)
bool ==(line,line)
bool @(point,arc)
bool @(point,conic)
bool @(point,explicit circle)
bool @(point,line)
real ^(point,explicit circle)
line[] ^^(line,line)
line[] ^^(line,line[])
line[] ^^(line,line[])
ellipse cast(circle)
conic cast(circle)
path cast(circle)
ellipse cast(conic)
parabola cast(conic)
hyperbola cast(conic)
circle cast(conic)
path cast(conic)
circle cast(ellipse)
conic cast(ellipse)
path cast(ellipse)
path cast(explicit arc)
guide cast(explicit arc)
vector cast(explicit point)
abscissa cast(explicit position)
pair cast(explicit vector)
conic cast(hyperbola)
path cast(hyperbola)
segment cast(line)
point cast(mass)
path cast(mass)
guide cast(mass)
point[] cast(mass[])
point cast(pair)
vector cast(pair)
mass cast(pair)
point[] cast(pair[])
conic cast(parabola)
path cast(parabola)
pair cast(point)
guide cast(point)
path cast(point)
mass cast(point)
pair[] cast(point[])
mass[] cast(point[])
abscissa cast(real)
line cast(segment)
line cast(side)
point cast(trilinear)
point cast(vector)
align cast(vector)
point cast(vertex)

List of Anonymous functions

typedef real abs(pair)
typedef real abs(pair);
Function type to calculate modulus of pair.
typedef real centerfunction(real, real, real)
typedef real centerfunction(real, real, real);
http://mathworld.wolfram.com/TriangleCenterFunction.html
typedef pair convert(pair)
typedef pair convert(pair);
Function type to convert pair in an other coordinate system.
typedef real dot(pair, pair)
typedef real dot(pair, pair);
Function type to calculate dot product.
typedef pair polar(real, real)
typedef pair polar(real, real);
Function type to calculate the coordinates from the polar coordinates.
typedef path polarconicroutine(conic, real, real, int, bool)
typedef path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction);
Routine type used to draw conics from 'angle1' to 'angle2'

List of structures

abscissa
struct abscissa
Provide abscissa structure on a curve used in the routine-like 'point(object, abscissa)' where object can be 'line','segment','ellipse','circle','conic'...
[Browse code]
  real x;
The abscissa value.

  int system;
0 = relativesystem; 1 = curvilinearsystem; 2 = angularsystem; 3 = nodesystem

  polarconicroutine polarconicroutine = fromCenter;
The routine used with angular system and two foci conic section. Possible values are 'formCenter' and 'formFocus'.

  abscissa copy()
Return a copy of this abscissa.

arc
struct arc {
Implement oriented ellipse (included circle) arcs. All the calculus with this structure will be as exact as Asymptote can do. For a full precision, you must not cast 'arc' to 'path' excepted for drawing routines.
[Browse code]
  ellipse el;
The support of the arc.

  restricted real angle0 = 0;
Internal use: rotating a circle does not modify the origin point,this variable stocks the eventual angle rotation. This value is not used for ellipses which are not circles.

  restricted  real angle1, angle2;
Values (in degrees) in ]-360, 360[.

  bool direction = CCW;
The arc will be drawn from 'angle1' to 'angle2' rotating in the direction 'direction'.

  polarconicroutine polarconicroutine = currentpolarconicroutine;
The routine to which the angles refer. If 'el' is a circle 'fromCenter' is always used.

  void setangles(real a0, real a1, real a2)
Set the angles.

  void init(ellipse el, real angle0 = 0, real angle1, real angle2,
            polarconicroutine polarconicroutine,
            bool direction = CCW)
Constructor.

  arc copy()
Copy the arc.

bqe
struct bqe
Bivariate Quadratic Equation.
[Browse code]
  real[] a;
a[0] * x^2 + a[1] * x * y + a[2] * y^2 + a[3] * x + a[4] * y + a[5] = 0

  coordsys coordsys;

circle
struct circle
All the calculus with this structure will be as exact as Asymptote can do. For a full precision, you must not cast 'circle' to 'path' excepted for drawing routines.
[Browse code]
  point C;
Center

  real r;
Radius

  line l;
If the radius is infinite, this line is used instead of circle.

conic
struct conic
[Browse code]
  real e, p, h;
BE CAREFUL: h = distance(F, D) and p = h * e (http://en.wikipedia.org/wiki/Ellipse) While http://mathworld.wolfram.com/ takes p = distance(F,D).

  point F;
Focus.

  line D;
Directrix.

  line[] l;
Case of degenerated conic (not yet implemented !).

coordsys
struct coordsys
This structure represents a coordinate system in the plane.
[Browse code]
  restricted pair O = (0, 0), i = (1, 0), j = (0, 1);
Origin and units vector.

  restricted convert relativetodefault = new pair(pair m){return m;};
Convert a pair given relatively to this coordinate system to the pair relatively to the default coordinate system.

  restricted convert defaulttorelative = new pair(pair m){return m;};
Convert a pair given relatively to the default coordinate system to the pair relatively to this coordinate system.

  restricted dot dot = new real(pair m, pair n){return dot(m, n);};
Return the dot product of this coordinate system.

  restricted abs abs = new real(pair m){return abs(m);};
Return the modulus of a pair in this coordinate system.

  restricted polar polar = new pair(real r, real a){return (r * cos(a), r * sin(a));};
Polar coordinates routine of this coordinate system.

  void init(convert rtd, convert dtr,
            polar polar, dot dot)
The default constructor of the coordinate system.

ellipse
struct ellipse
Look at http://mathworld.wolfram.com/Ellipse.html
[Browse code]
  restricted point F1,F2,C;
Foci and center.

  restricted real a,b,c,e,p;

  restricted real angle;
Value is degrees(F1 - F2).

  restricted line D1,D2;
Directrices.

  line l;
If one axis is infinite, this line is used instead of ellipse.

  void init(point f1, point f2, real a)
Ellipse given by foci and semimajor axis

hyperbola
struct hyperbola
Look at http://mathworld.wolfram.com/Hyperbola.html
[Browse code]
  restricted point F1,F2;
Foci.

  restricted point C,V1,V2;
Center and vertices.

  restricted real a,b,c,e,p;

  restricted real angle;
Angle,in degrees,of the line (F1F2).

  restricted line D1,D2,A1,A2;
Directrices and asymptotes.

  pair bmin, bmax; 
The (left, bottom) and (right, top) coordinates of region bounding box for drawing the hyperbola. If unset the current picture bounding box is used instead.

  void init(point f1, point f2, real a)
Hyperbola given by foci and semimajor axis.

inversion
struct inversion
http://mathworld.wolfram.com/Inversion.html
[Browse code]
line
struct line
This structure provides the objects line, semi - line and segment oriented from A to B. All the calculus with this structure will be as exact as Asymptote can do. For a full precision, you must not cast 'line' to 'path' excepted for drawing routines.
[Browse code]
  restricted point A,B;
Two line's points with same coordinate system.

  bool extendA,extendB;
If true,extend 'l' in direction of A (resp. B).

  restricted vector u,v;
u = unit(AB) = direction vector,v = normal vector.

  restricted real a,b,c;
Coefficients of the equation ax + by + c = 0 in the coordinate system of 'A'.

  restricted real slope, origin;
Slope and ordinate at the origin.

  line copy()
Copy a line in a new instance.

  void init(point A, bool extendA = true, point B, bool extendB = true)
Initialize line. If 'extendA' is true, the "line" is infinite in the direction of A.

mass
struct mass 
[Browse code]
  point M;

  real m;

parabola
struct parabola
Look at http://mathworld.wolfram.com/Parabola.html
[Browse code]
  restricted point F,V;
Focus and vertex

  restricted real a,p,e = 1;

  restricted real angle;
Angle, in degrees, of the line (FV).

  restricted line D;
Directrix

  pair bmin, bmax;
The (left, bottom) and (right, top) coordinates of region bounding box for drawing the parabola. If unset the current picture bounding box is used instead.

  void init(point F, line directrix)
Parabola given by focus and directrix.

point
struct point
This structure replaces the pair to embed its coordinate system. For example, if 'P = point(cartesiansystem((1, 2), i, j), (0, 0))', P is equal to the pair (1, 2).
[Browse code]
  coordsys coordsys;
The coordinate system of this point.

  restricted pair coordinates;
The coordinates of this point relatively to the coordinate system 'coordsys'.

  restricted real x, y;
The xpart and the ypart of 'coordinates'.

  real m = 1;
Used to cast mass<->point.


  real m = 1;Used to cast mass<->point.
  void init(coordsys R, pair coordinates, real mass)
  real m = 1;
Used to cast mass<->point.
The constructor.

segment
struct segment
.
[Browse code]
side
  struct side
Structure used to communicate the side of a triangle.
[Browse code]
    int n;
1 or 0 means [AB],-1 means [BA],2 means [BC],-2 means [CB] etc.

    triangle t;
The triangle to which the side refers.

triangle
struct triangle 
[Browse code]
    int n;
1 means VA,2 means VB,3 means VC,4 means VA etc...

    triangle t;
The triangle to which the vertex refers.

  restricted point A, B, C;
The vertices of the triangle (as point).

  restricted vertex VA, VB, VC;
The vertices of the triangle (as vertex). Note that the vertex structure contains the triangle to wish it refers.

    int n;
1 or 0 means [AB],-1 means [BA],2 means [BC],-2 means [CB] etc.

    triangle t;
The triangle to which the side refers.

  side AB;
For the routines using the structure 'side', triangle.AB means 'side AB'. BA, AC, CA etc are also defined.

  vertex vertex(int n)
Return numbered vertex. 'n' is 1 means VA, 2 means VB, 3 means VC, 4 means VA etc...

  point point(int n)
Return numbered point. n is 1 means A, 2 means B, 3 means C, 4 means A etc...

  void init(point A, point B, point C)
Constructor.

  void operator init(point A, point B, point C)
For backward compatibility. Provide the routine 'triangle(point A, point B, point C)'.

  void operator init(real b, real alpha, real c, real angle = 0, point A = (0, 0))
For backward compatibility. Provide the routine 'triangle(real b, real alpha, real c, real angle = 0, point A = (0, 0)) which returns the triangle ABC rotated by 'angle' (in degrees) and where b = AC, degrees(A) = alpha, AB = c.

  real a()
Return the length BC. b() and c() are also defined and return the length AC and AB respectively.

  real area()

  real alpha()
Return the measure (in degrees) of the angle A. beta() and gamma() are also defined and return the measure of the angles B and C respectively.

  path Path()
The path of the triangle.

  side side(int n)
Return numbered side. n is 1 means AB, -1 means BA, 2 means BC, -2 means CB, etc.

  line line(int n)
Return the numbered line.

trilinear
struct trilinear
Trilinear coordinates 'a:b:c' relative to triangle 't'. http://mathworld.wolfram.com/TrilinearCoordinates.html
[Browse code]
  real a,b,c;
The trilinear coordinates.

  triangle t;
The reference triangle.

vector
struct vector
Like a point but casting to pair, adding etc does not take account of the origin of the coordinate system.
[Browse code]
  point v;
Coordinates as a point (embed coordinate system and pair).

vertex
  struct vertex 
Structure used to communicate the vertex of a triangle.
[Browse code]
    int n;
1 means VA,2 means VB,3 means VC,4 means VA etc...

    triangle t;
The triangle to which the vertex refers.

List of constants

Ox
restricted line Ox = Ox();
the x-axis of the default coordinate system.
[Browse code]
Oy
restricted line Oy = Oy();
the y-axis of the default coordinate system.
[Browse code]
byfoci,byvertices
restricted bool byfoci = true, byvertices = false;
Constants useful for the routine 'hyperbola(point P1, point P2, real ae, bool byfoci = byfoci)'
[Browse code]
defaultcoordsys
restricted coordsys defaultcoordsys = cartesiansystem(0, (1, 0), (0, 1));
One can always refer to the default coordinate system using this constant.
[Browse code]
fromCenter
restricted polarconicroutine fromCenter = arcfromcenter;
[Browse code]
fromFocus
restricted polarconicroutine fromFocus = arcfromfocus;
[Browse code]
hline
line hline = hline();
The horizontal line in the current coordinate system passing through the origin of this system.
[Browse code]
relativesystem,curvilinearsystem,angularsystem,nodesystem
restricted int relativesystem = 0, curvilinearsystem = 1, angularsystem = 2, nodesystem = 3;
Constant used to set the abscissa system.
[Browse code]
vline
restricted line vline = vline();
The vertical line in the current coordinate system passing through the origin of this system.
[Browse code]

List of variables

addpenarc
pen addpenarc = squarecap;
Add this property to the drawing pen of arcs.
[Browse code]
addpenline
pen addpenline = squarecap;
Add this property to the drawing pen of "finish" lines.
[Browse code]
circlenodesnumberfactor
int circlenodesnumberfactor = 100;
Factor for the node number of circles.
[Browse code]
conicnodesfactor
int conicnodesfactor = 1;
Factor for the node number of all conics.
[Browse code]
currentcoordsys
coordsys currentcoordsys = defaultcoordsys;
The coordinate system used by default.
[Browse code]
currentpolarconicroutine
polarconicroutine currentpolarconicroutine = arcfromfocus;
Default routine used to cast conic section to path.
[Browse code]
defaultmassformat
string defaultmassformat = "$\left(%L;%.4g\right)$";
Format used to construct the default label of masses.
[Browse code]
ellispenodesnumberfactor
int ellipsenodesnumberfactor = 250;
Factor for the node number of ellispe (non-circle).
[Browse code]
epsgeo
real epsgeo = 10 * sqrt(realEpsilon);
Variable used in the approximate calculations.
[Browse code]
hyperbolanodesnumberfactor
int hyperbolanodesnumberfactor = 100;
Factor for the number of nodes of hyperbolas.
[Browse code]
linemargin
real linemargin = 0;
Margin used to draw lines.
[Browse code]
origin
point origin = point(defaultcoordsys, (0, 0));
The origin of the current coordinate system.
[Browse code]
parabolanodesnumberfactor
int parabolanodesnumberfactor = 100;
Factor for the number of nodes of parabolas.
[Browse code]
perpfactor
real perpfactor = 1;
Factor for drawing perpendicular symbol.
[Browse code]

List of functions

Ox(coordsys)
line Ox(coordsys R = currentcoordsys)
Return the x-axis of 'R'.
[Browse code]
Oy(coordsys)
line Oy(coordsys R = currentcoordsys)
Return the y-axis of 'R'.
[Browse code]
abs(coordsys,pair)
real abs(coordsys R, pair m)
Return the modulus |m| in the coordinate system 'R'.
[Browse code]
abs(explicit point)
real abs(explicit point M)
Return the modulus |M| in its coordinate system.
[Browse code]
addMargins(picture,real,real,real,real)
void addMargins(picture pic = currentpicture,
                real lmargin = 0, real bmargin = 0,
                real rmargin = lmargin, real tmargin = bmargin,
                bool rigid = true, bool allObject = true)
Add margins to 'pic' with respect to the current bounding box of 'pic'. If 'rigid' is false, margins are added iff an infinite curve will be prolonged on the margin. If 'allObject' is false, fixed - size objects (such as labels and arrowheads) will be ignored.
[Browse code]
altitude(vertex)
line altitude(vertex V)
Return the altitude passing through 'V'.
[Browse code]
altitude(vertex)
line altitude(side side)
Return the altitude cutting 'side'.
[Browse code]
angabscissa(arc,point)
abscissa angabscissa(arc a, point M)
Return the angular abscissa of 'M' according to the arc 'a'.
[Browse code] Example 0094 Example 0095
angabscissa(circle,point)
abscissa angabscissa(circle c, point M)
Return the angular abscissa of 'M' on the circle 'c'.
[Browse code] Example 0073
angabscissa(conic,point)
abscissa angabscissa(explicit conic co, point M)
Return the angular abscissa of 'M' on the conic 'co'.
[Browse code]
angabscissa(ellipse,point,polarconicroutine)
abscissa angabscissa(ellipse el, point M,
                     polarconicroutine polarconicroutine = currentpolarconicroutine)
Return the angular abscissa of 'M' on the ellipse 'el' according to 'polarconicroutine'.
[Browse code] Example 0074
angabscissa(hyperbola,point,polarconicroutine)
abscissa angabscissa(hyperbola h, point M,
                     polarconicroutine polarconicroutine = currentpolarconicroutine)
Return the angular abscissa of 'M' on the hyperbola 'h' according to 'polarconicroutine'.
[Browse code]
angabscissa(parabola,point)
abscissa angabscissa(parabola p, point M)
Return the angular abscissa of 'M' on the parabola 'p'.
[Browse code] Example 0075
angabscissa(real,polarconicroutine)
abscissa angabscissa(real x, polarconicroutine polarconicroutine = currentpolarconicroutine)
Return a angular abscissa.
[Browse code] Example 0063 Example 0064 Example 0065
angle(a)
real angle(arc a)
Return the measure in radians of the oriented arc 'a'.
[Browse code]
angle(explicit point,coordsys,bool)
real angle(explicit point M, coordsys R = M.coordsys, bool warn = true)
Return the angle of M (in radians) relatively to 'R'.
[Browse code]
angle(line,coordsys)
real angle(line l, coordsys R = coordsys(l))
Return the angle of the oriented line 'l', in radian, in the interval ]-pi, pi] and relatively to 'R'.
[Browse code]
angle(line,line)
real angle(line l1, line l2)
Return the measure in radians of oriented angle (l1.u, l2.u).
[Browse code]
angle(vector,coordsys,bool)
real angle(explicit vector v,
           coordsys R = v.v.coordsys,
           bool warn = true)
Return the angle of 'v' (in radians) relatively to 'R'.
[Browse code]
angpoint(arc,real)
point angpoint(arc a, real angle)
Return the point given by its angular position (in degrees) relative to the arc 'a'. If 'angle > degrees(a)' or 'angle < 0' the returned point is on the extended arc.
[Browse code] Example 0090 Example 0091
angpoint(conic,real)
point angpoint(conic co, real angle)
Return the point of 'co' whose the angular (in degrees) coordinate is 'angle' (mesured from the focus of 'co', relatively to its 'natural coordinate system').
[Browse code]
angpoint(explicit circle,real)
point angpoint(explicit circle c, real x)
Return the point of 'c' in the direction 'x' measured in degrees.
[Browse code] Example 0063
angpoint(explicit ellipse,real,polarconicroutine)
point angpoint(explicit ellipse el, real x,
               polarconicroutine polarconicroutine = currentpolarconicroutine)
Return the point of 'el' in the direction 'x' measured in degrees according to 'polarconicroutine'.
[Browse code] Example 0064 Example 0065
angpoint(explicit hyperbola,real,polarconicroutine)
point angpoint(explicit hyperbola h, real x,
               polarconicroutine polarconicroutine = currentpolarconicroutine)
Return the point of 'h' in the direction 'x' measured in degrees according to 'polarconicroutine'.
[Browse code] Example 0067 Example 0068
angpoint(explicit parabola,real)
point angpoint(explicit parabola p, real x)
Return the point of 'p' in the direction 'x' measured in degrees.
[Browse code] Example 0066
anticomplementary(triangle)
triangle anticomplementary(triangle t)
Return the triangle which has the given triangle 't' as its medial triangle.
[Browse code] Example 0110
antipedal(triangle,point)
triangle antipedal(triangle t, point M)
http://mathworld.wolfram.com/AntipedalTriangle.html
[Browse code]
arc(ellipse,abscissa,abscissa,bool)
arc arc(ellipse el, explicit abscissa x1, explicit abscissa x2, bool direction = CCW)
Return the arc from 'point(c, x1)' to 'point(c, x2)' in the direction 'direction'.
[Browse code] Example 0077 Example 0078
arc(ellipse,point,point,bool)
arc arc(ellipse el, point M, point N, bool direction = CCW)
Return the arc from 'M' to 'N' in the direction 'direction'. The points 'M' and 'N' must belong to the ellipse 'el'.
[Browse code] Example 0077 Example 0078
arc(ellipse,real,real,polarconicroutine,bool)
arc arc(ellipse el, real angle1, real angle2,
        polarconicroutine polarconicroutine = polarconicroutine(el),
        bool direction = CCW)
Return the ellipse arc from 'angle1' to 'angle2' with respect to 'polarconicroutine' and rotating in the direction 'direction'.
[Browse code] Example 0080
arc(explicit arc,abscissa,abscissa)
arc arc(explicit arc a, abscissa x1, abscissa x2)
Return the arc from 'point(a, x1)' to 'point(a, x2)' traversed in the direction of the arc direction.
[Browse code] Example 0096 Example 0097 Example 0098 Example 0099
arc(explicit arc,point,point)
arc arc(explicit arc a, point M, point N)
Return the arc from 'M' to 'N'. The points 'M' and 'N' must belong to the arc 'a'.
[Browse code] Example 0096 Example 0097
arccircle(point,point,point)
arc arccircle(point A, point M, point B)
Return the CCW arc circle 'AB' passing through 'M'.
[Browse code] Example 0100
arccircle(point,point,real,bool)
arc arccircle(point A, point B, real angle, bool direction = CCW)
Return the arc circle centered on A from B to rotate(angle, A) * B in the direction 'direction'.
[Browse code]
arcfromcenter(ellipse,real,real,int,bool)
path arcfromcenter(ellipse el, real angle1, real angle2,
                   bool direction=CCW,
                   int n=ellipsenodesnumber(el.a,el.b,angle1,angle2,direction))
Return the path of the ellipse 'el' from angle1 to angle2 in degrees, drawing in the given direction, with n nodes. The angles are mesured relatively to the axis (C,x-axis) where C is the center of the ellipse.
[Browse code]
arcfromcenter(explicit conic,real,real,int,bool)
path arcfromcenter(explicit conic co, real angle1, real angle2,
                   int n, bool direction = CCW)
Use arcfromcenter(ellipse, ...) or arcfromcenter(hyperbola, ...) depending of the eccentricity of 'co'.
[Browse code]
arcfromcenter(hyperbola,real,real,int,bool)
path arcfromcenter(hyperbola h, real angle1, real angle2,
                   int n = hyperbolanodesnumber(h, angle1, angle2),
                   bool direction = CCW)
Return the path of the hyperbola 'h' from angle1 to angle2 in degrees, drawing in the given direction, with n nodes. The angles are mesured relatively to the axis (C, x-axis) where C is the center of the hyperbola.
[Browse code]
arcfromfocus(conic,real,real,int,bool)
path arcfromfocus(conic co, real angle1, real angle2, int n = 400, bool direction = CCW)
Return the path of the conic section 'co' from angle1 to angle2 in degrees, drawing in the given direction, with n nodes.
[Browse code] Example 0067
arclength(arc)
real arclength(arc a)
The arc length of 'a'.
[Browse code]
arclength(circle)
real arclength(circle c)
[Browse code]
arclength(ellipse)
real arclength(ellipse el)
[Browse code]
arclength(ellipse,real,real,bool,polarconicroutine)
real arclength(ellipse el, real angle1, real angle2,
               bool direction = CCW,
               polarconicroutine polarconicroutine = currentpolarconicroutine)
Return the length of the arc of the ellipse between 'angle1' and 'angle2'. 'angle1' and 'angle2' must be in the interval ]-360;+oo[ if polarconicroutine = fromFocus, ]-oo;+oo[ if polarconicroutine = fromCenter.
[Browse code]
arclength(parabola p)
real arclength(parabola p)
Return the length of the arc of the parabola bounded to the bounding box of the current picture.
[Browse code]
arclength(parabola,real)
real arclength(parabola p, real angle)
Return the arclength from 180 to 'angle' given from focus in the canonical coordinate system of 'p'.
[Browse code]
arclength(parabola,real,real)
real arclength(parabola p, real angle1, real angle2)
Return the arclength from 'angle1' to 'angle2' given from focus in the canonical coordinate system of 'p'
[Browse code]
arcnodesnumber(explicit arc)
int arcnodesnumber(explicit arc a)
Return the number of nodes to draw the arc 'a'.
[Browse code] Example 0092 Example 0093
arcsubtended(point,point,real)
arc arcsubtended(point A, point B, real angle)
Return the arc circle from which the segment AB is saw with the angle 'angle'. If the point 'M' is on this arc, the oriented angle (MA, MB) is equal to 'angle'.
[Browse code] Example 0106
arcsubtendedcenter(point,point,real)
point arcsubtendedcenter(point A, point B, real angle)
Return the center of the arc retuned by the 'arcsubtended' routine.
[Browse code] Example 0106
attract(pair,path,real)
pair attract(pair m, path g, real fuzz = 0)
Return the nearest point (A PAIR) of 'm' which is on the path g. 'fuzz' is the argument 'fuzz' of 'intersect'.
[Browse code]
attract(point,path,real)
point attract(point M, path g, real fuzz = 0)
Return the nearest point (A POINT) of 'M' which is on the path g. 'fuzz' is the argument 'fuzz' of 'intersect'.
[Browse code]
bangles(picture,hyperbola)
real[][] bangles(picture pic = currentpicture, hyperbola h)
Return the array {{ma1, Ma1}, {ma2, Ma2}} where 'maX' and 'MaX' are respectively the smaller and the bigger angles (from h.FX) for which the hyperbola 'h' is included in the bounding box of the picture 'pic'.
[Browse code] Example 0072
bangles(picture,parabola)
real[] bangles(picture pic = currentpicture, parabola p)
Return the array {ma, Ma} where 'ma' and 'Ma' are respectively the smaller and the larger angles for which the parabola 'p' is included in the bounding box of the picture 'pic'.
[Browse code] Example 0071
between(point,point,point)
bool between(point M, point O, point N)
Return 'true' iff 'O' is between 'M' and 'N'.
[Browse code]
binomial(real,real)
real binomial(real n, real k)
Return n!/((n - k)!*k!)
[Browse code]
bisector(line,line,real,bool)
line bisector(line l1, line l2, real angle = 0, bool sharp = true)
Return the bisector of the angle formed by 'l1' and 'l2' rotated by the angle 'angle' (in degrees) around intersection point of 'l1' with 'l2'. If 'sharp' is true (the default), this routine returns the bisector of the sharp angle. Note that the returned line inherit of coordinate system of 'l1'.
[Browse code] Example 0022
bisector(point,point,point,point,real)
line bisector(point A, point B, point C, point D, real angle = 0, bool sharp = true)
Return the bisector of the angle formed by the lines (AB) and (CD). Look at bisector(line, line, real, bool).
[Browse code]
bisector(point,point,real)
line bisector(point A, point B, real angle = 0)
Return the bisector of the segment line [AB] rotated by 'angle' (in degrees) around the midpoint of [AB].
[Browse code]
bisector(segment,real)
line bisector(segment s, real angle = 0)
Return the bisector of the segment line 's' rotated by 'angle' (in degrees) around the midpoint of 's'.
[Browse code] Example 0025
bisector(side)
line bisector(side side)
Return the bisector of the line segment 'side'.
[Browse code]
bisector(vertex,real)
line bisector(vertex V, real angle = 0)
Return the interior bisector passing through 'V' rotated by angle (in degrees) around 'V'.
[Browse code] Example 0112
bisectorpoint(side)
point bisectorpoint(side side)
The intersection point of the angle bisector from the opposite point of 'side' with the side 'side'.
[Browse code] Example 0112
bool samecoordsys(bool...point[])
bool samecoordsys(bool warn = true ... point[] M)
Return true iff all the points have the same coordinate system. If 'warn' is true and the coordinate systems are different, a warning is sent.
[Browse code]
bqe(coordsys,real,real,real,real,real,real)
bqe bqe(coordsys R = currentcoordsys,
        real a, real b, real c, real d, real e, real f)
Return the bivariate quadratic equation a[0] * x^2 + a[1] * x * y + a[2] * y^2 + a[3] * x + a[4] * y + a[5] = 0 relatively to the coordinate system R.
[Browse code]
bqe(point,point,point,point,point)
bqe bqe(point M1, point M2, point M3, point M4, point M5)
Return the bqe of conic passing through the five points (if possible).
[Browse code]
canonical(bqe)
bqe canonical(bqe bqe)
Return the bivariate quadratic equation relative to the canonical coordinate system of the conic section represented by 'bqe'.
[Browse code]
canonicalcartesiansystem(ellipse)
coordsys canonicalcartesiansystem(ellipse el)
Return the canonical cartesian system of the ellipse 'el'.
[Browse code] Example 0054
canonicalcartesiansystem(hyperbola)
coordsys canonicalcartesiansystem(hyperbola h)
Return the canonical cartesian system of an hyperbola.
[Browse code]
canonicalcartesiansystem(hyperbola)
coordsys canonicalcartesiansystem(explicit conic co)
Return the canonical cartesian system of the conic 'co'.
[Browse code]
canonicalcartesiansystem(parabola)
coordsys canonicalcartesiansystem(parabola p)
Return the canonical cartesian system of a parabola, so that Origin = vertex of 'p' and directrix: x = -a.
[Browse code]
cartesiansystem(pair,pair,pair)
coordsys cartesiansystem(pair O = (0, 0), pair i, pair j)
Return the Cartesian coordinate system (O, i, j).
[Browse code] Example 0002 Example 0003
centerToFocus(ellipse,real)
real centerToFocus(ellipse el, real a)
Return the angle relatively to the focus of 'el' for the angle 'a' given relatively to the center of 'el'.
[Browse code]
centroid(point,point,point)
point centroid(point A, point B, point C)
Return the centroid of the triangle ABC.
[Browse code]
centroid(triangle)
point centroid(triangle t)
Return the centroid of the triangle 't'.
[Browse code]
cevian(side,point)
point cevian(side side, point P)
Return the Cevian point on 'side' with respect of 'P'.
[Browse code]
cevian(triangle,point)
triangle cevian(triangle t, point P)
Return the Cevian triangle with respect of 'P' http://mathworld.wolfram.com/CevianTriangle.html.
[Browse code]
cevian(vertex,point)
line cevian(vertex V, point P)
Return line passing through 'V' and its Cevian image with respect of 'P'.
[Browse code]
changecoordsys(coordsys,bqe)
bqe changecoordsys(coordsys R, bqe bqe)
Returns the bivariate quadratic equation relatively to 'R'.
[Browse code]
changecoordsys(coordsys,conic)
conic changecoordsys(coordsys R, conic co)
Change the coordinate system of 'co' to 'R'
[Browse code]
changecoordsys(coordsys,line)
line changecoordsys(coordsys R, line l)
Return the line 'l' in the coordinate system 'R'.
[Browse code]
changecoordsys(coordsys,point)
point changecoordsys(coordsys R, point M)
Return the point 'M' in the coordinate system 'coordsys'. In other words, the returned point marks the same plot as 'M' does.
[Browse code] Example 0004
changecoordsys(coordsys,vector)
vector changecoordsys(coordsys R, vector v)
Return the vector 'v' relatively to coordinate system 'R'.
[Browse code]
circle(explicit point,real)
circle circle(explicit point C, real r)
Circle given by center and radius.
[Browse code]
circle(inversion)
circle circle(inversion i)
Return the inversion circle of 'i'.
[Browse code]
circle(point,point)
circle circle(point A, point B)
Return the circle of diameter AB.
[Browse code] Example 0050
circle(point,point,point)
circle circle(point A, point B, point C)
Return the circumcircle of the triangle ABC.
[Browse code] Example 0028 Example 0053
circle(segment)
circle circle(segment s)
Return the circle of diameter 's'.
[Browse code]
circle(triangle)
circle circle(triangle t)
Return the circumcircle of the triangle 't'.
[Browse code] Example 0111
circlenodesnumber(real)
int circlenodesnumber(real r)
Return the number of nodes for drawing a circle of radius 'r'.
[Browse code] Example 0069 Example 0070
circlenodesnumber(real,real,real)
int circlenodesnumber(real r, real angle1, real angle2)
Return the number of nodes to draw a circle arc.
[Browse code]
circumcenter(point,point,point)
point circumcenter(point A, point B, point C)
Return the circumcenter of triangle ABC.
[Browse code]
circumcenter(triangle)
point circumcenter(triangle t)
Return the circumcenter of the triangle 't'.
[Browse code]
circumcircle(point,point,point)
circle circumcircle(point A, point B, point C)
Return the circumcircle of the triangle ABC.
[Browse code]
circumcircle(triangle)
circle circumcircle(triangle t)
Return the circumcircle of the triangle 't'.
[Browse code]
clipdraw(picture,Label,path,align,pen,arrowbar,arrowbar,real,real,Label,marker)
void clipdraw(picture pic = currentpicture, Label L = "", path g,
              align align = NoAlign, pen p = currentpen,
              arrowbar arrow = None, arrowbar bar = None,
              real xmargin = 0, real ymargin = xmargin,
              Label legend = "", marker marker = nomarker)
Draw the path 'g' on 'pic' clipped to the bounding box of 'pic'.
[Browse code] Example 0028
collinear(vector,vector)
bool collinear(vector u, vector v)
Return 'true' iff the vectors 'u' and 'v' are collinear.
[Browse code]
compassmark(pair,pair,real,real)
path compassmark(pair O, pair A, real position, real angle = 10)
Return an arc centered on O with the angle 'angle' so that the position of 'A' on this arc makes an angle 'position * angle'.
[Browse code] Example 0105
complementary(arc)
arc complementary(arc a)
Return the complementary of 'a'.
[Browse code] Example 0080 Example 0081
complementary(explicit line)
line complementary(explicit line l)
Return the complementary of a half-line with respect of the full line 'l'.
[Browse code] Example 0023
complementary(explicit segment)
line[] complementary(explicit segment s)
Return the two half-lines of origin 's.A' and 's.B' respectively.
[Browse code] Example 0024
concurrent(...line[])
bool concurrent(... line[] l)
Returns true if all the lines 'l' are concurrent.
[Browse code] Example 0022
conic(bqe)
conic conic(bqe bqe)
Return the conic section represented by the bivariate quartic equation 'bqe'.
[Browse code]
conic(point,point,point,point,point)
conic conic(point M1, point M2, point M3, point M4, point M5)
Return the conic passing through 'M1', 'M2', 'M3', 'M4' and 'M5' if the conic is not degenerated.
[Browse code]
conicnodesnumber(conic,real,real)
int conicnodesnumber(conic co, real angle1, real angle2, bool dir = CCW)
Return the number of node to draw a conic arc.
[Browse code]
conictype(bqe)
string conictype(bqe bqe)
Returned values are "ellipse" or "parabola" or "hyperbola" depending of the conic section represented by 'bqe'.
[Browse code]
conj(explicit point)
point conj(explicit point M)
Conjugate.
[Browse code]
conj(explicit vector)
vector conj(explicit vector u)
Conjugate.
[Browse code]
conj(hyperbola)
hyperbola conj(hyperbola h)
Conjugate.
[Browse code] Example 0034
coordsys(conic)
coordsys coordsys(conic co)
Return the coordinate system of 'co'.
[Browse code]
coordsys(ellipse)
coordsys coordsys(ellipse el)
Return the coordinate system of 'el'.
[Browse code]
coordsys(line)
coordsys coordsys(line l)
Return the coordinate system in which 'l' is defined.
[Browse code]
curabscissa(arc,point)
abscissa curabscissa(arc a, point M)
Return the curvilinear abscissa according to the arc 'a'.
[Browse code] Example 0094 Example 0095
curabscissa(circle,point)
abscissa curabscissa(circle c, point M)
Return the curvilinear abscissa of 'M' on the circle 'c'.
[Browse code] Example 0073
curabscissa(conic,point)
abscissa curabscissa(conic co, point M)
Return the curvilinear abscissa of 'M' on the conic 'co'.
[Browse code]
curabscissa(ellipse,point)
abscissa curabscissa(ellipse el, point M)
Return the curvilinear abscissa of 'M' on the ellipse 'el'.
[Browse code] Example 0074
curabscissa(line,point)
abscissa curabscissa(line l, point M)
Return the curvilinear abscissa of 'M' on the line 'l'.
[Browse code] Example 0056
curabscissa(parabola,point)
abscissa curabscissa(parabola p, point M)
Return the curvilinear abscissa of 'M' on the parabola 'p'.
[Browse code] Example 0075
curabscissa(real)
abscissa curabscissa(real x)
Return a curvilinear abscissa.
[Browse code] Example 0060 Example 0061
curpoint(arc,real)
point curpoint(arc a, real x)
Return the point of 'a' which has the curvilinear abscissa 'x'. If x < 0 or x > arclength(a), the returned point is on the extended arc.
[Browse code] Example 0088 Example 0089
curpoint(conic,real)
point curpoint(conic co, real x)
Return the point of 'co' which has the curvilinear abscissa 'x'.
[Browse code]
curpoint(explicit circle,real)
point curpoint(explicit circle c, real x)
Return the point of 'c' which has the curvilinear abscissa 'x'. Origin is c.center + c.r * (1, 0).
[Browse code] Example 0060
curpoint(explicit ellipse,real)
point curpoint(explicit ellipse el, real x)
Return the point of 'el' which has the curvilinear abscissa 'el'.
[Browse code] Example 0061
curpoint(explicit parabola,real)
point curpoint(explicit parabola p, real x)
Return the point of 'p' which has the curvilinear abscissa 'x'. Origin is the vertex of 'p'.
[Browse code] Example 0062
curpoint(line,real)
point curpoint(line l, real x)
Return the point of 'l' which has the curvilinear abscissa 'x'. Origin is l.A.
[Browse code] Example 0045 Example 0056
defined(pair)
bool defined(point P)
Return true iff the coordinates of 'P' are finite.
[Browse code] Example 0023
degrees(arc)
real degrees(arc a)
Return the measure in degrees of the oriented arc 'a'.
[Browse code] Example 0086
degrees(explicit point,coordsys,bool)
real degrees(explicit point M, coordsys R = M.coordsys, bool warn = true)
Return the angle of M (in degrees) relatively to 'R'.
[Browse code]
degrees(line,coordsys,bool)
real degrees(line l, coordsys R = coordsys(l))
Returns the angle of the oriented line 'l' in degrees, in the interval [0, 360[ and relatively to 'R'.
[Browse code]
degrees(line,line)
real degrees(line l1, line l2)
Return the measure in degrees of the angle formed by the oriented lines 'l1' and 'l2'.
[Browse code]
degrees(vector,coordsys,bool)
real degrees(vector v,
             coordsys R = v.v.coordsys,
             bool warn = true)
Return the angle of 'v' (in degrees) relatively to 'R'.
[Browse code]
dir(vertex)
vector dir(vertex V)
The direction (towards the outside of the triangle) of the interior angle bisector of 'V'.
[Browse code]
distance(picture pic,Label,point,point,bool,real,pen,pen,arrow)
void distance(picture pic = currentpicture, Label L = "", point A, point B,
              bool rotated = true, real offset = 3mm,
              pen p = currentpen, pen joinpen = invisible,
              arrowbar arrow = Arrows(NoFill))
Draw arrow between A and B (from FAQ).
[Browse code] Example 0057 Example 0088
distance(point,line)
real distance(point M, line l)
Return the distance from 'M' to 'l'. distance(line, point) is also defined.
[Browse code]
dot(picture,Label,explicit mass,align,string,pen)
void dot(picture pic = currentpicture, Label L, explicit mass M, align align = NoAlign,
         string format = defaultmassformat, pen p = currentpen)
Draw a dot with label 'L' as label(picture, Label, explicit mass, align, string, pen, filltype) does. Look at label(picture, Label, mass, align, string, pen, filltype).
[Browse code]
dot(picture,Label,explicit point,align,string,pen)
void dot(picture pic = currentpicture, Label L, explicit point Z,
         align align = NoAlign,
         string format = defaultformat, pen p = currentpen)
[Browse code] Example 0073 Example 0074 Example 0075
dot(picture,triangle,pen)
void dot(picture pic = currentpicture, triangle t, pen p = currentpen)
Draw a dot at each vertex of 't'.
[Browse code]
dot(point,explicit pair)
real dot(point A, explicit pair B)
Return the dot product in the default coordinate system. dot(explicit pair, point) is also defined.
[Browse code]
dot(point,point)
real dot(point A, point B)
Return the dot product in the coordinate system of 'A'.
[Browse code]
draw(picture,Label,arc,align,pen,arrowbar,arrowbar,margin,Label,marker)
void draw(picture pic = currentpicture, Label L = "", arc a,
          align align = NoAlign, pen p = currentpen,
          arrowbar arrow = None, arrowbar bar = None, margin margin = NoMargin,
          Label legend = "", marker marker = nomarker)
Draw 'arc' adding the pen returned by 'addpenarc(p)' to the pen 'p'. Look at addpenarc
[Browse code]
draw(picture,Label,circle,align,pen,arrowbar,arrowbar,margin,Label,marker)
void draw(picture pic = currentpicture, Label L = "", circle c,
          align align = NoAlign, pen p = currentpen,
          arrowbar arrow = None, arrowbar bar = None,
          margin margin = NoMargin, Label legend = "", marker marker = nomarker)
[Browse code]
draw(picture,Label,ellipse,align,pen,arrowbar,arrowbar,margin,Label,marker)
void draw(picture pic = currentpicture, Label L = "", ellipse el,
          align align = NoAlign, pen p = currentpen,
          arrowbar arrow = None, arrowbar bar = None,
          margin margin = NoMargin, Label legend = "", marker marker = nomarker)
[Browse code]
draw(picture,Label,explicit conic,align,pen,arrowbar,arrowbar,margin,Label,marker)
void draw(picture pic = currentpicture, Label L = "", explicit conic co,
          align align = NoAlign, pen p = currentpen,
          arrowbar arrow = None, arrowbar bar = None,
          margin margin = NoMargin, Label legend = "", marker marker = nomarker)
Use one of the routine 'draw(ellipse, ...)', 'draw(parabola, ...)' or 'draw(hyperbola, ...)' depending of the value of eccentricity of 'co'.
[Browse code] Example 0076
draw(picture,Label,hyperbola,align,pen,arrowbar,arrowbar,margin,Label,marker)
void draw(picture pic = currentpicture, Label L = "", hyperbola h,
          align align = NoAlign, pen p = currentpen,
          arrowbar arrow = None, arrowbar bar = None,
          margin margin = NoMargin, Label legend = "", marker marker = nomarker)
Draw the hyperbola 'h' on 'pic' without (if possible) altering the size of the picture pic.
[Browse code]
draw(picture,Label,line,bool,bool,align,pen,arrowbar,Label,marker)
void draw(picture pic = currentpicture, Label L = "",
          line l, bool dirA = l.extendA, bool dirB = l.extendB,
          align align = NoAlign, pen p = currentpen,
          arrowbar arrow = None,
          Label legend = "", marker marker = nomarker,
          pathModifier pathModifier = NoModifier)
Draw the line 'l' without altering the size of picture pic. The boolean parameters control the infinite section. The global variable 'linemargin' (default value is 0) allows to modify the bounding box in which the line must be drawn.
[Browse code] Example 0016
draw(picture,Label,parabola,align,pen,arrowbar,arrowbar,margin,Label,marker)
void draw(picture pic = currentpicture, Label L = "", parabola parabola,
          align align = NoAlign, pen p = currentpen,
          arrowbar arrow = None, arrowbar bar = None,
          margin margin = NoMargin, Label legend = "", marker marker = nomarker)
Draw the parabola 'p' on 'pic' without (if possible) altering the size of picture pic.
[Browse code]
draw(picture,Label[], line[], align,pen,arrowbar,Label,marker)
void draw(picture pic = currentpicture, Label[] L = new Label[], line[] l,
          align align = NoAlign, pen p,
          arrowbar arrow = None,
          Label[] legend = new Label[], marker marker = nomarker,
          pathModifier pathModifier = NoModifier)
Draw each lines with the same pen 'p'.
[Browse code]
draw(picture,Label[], line[], align,pen[], arrowbar,Label,marker)
void draw(picture pic = currentpicture, Label[] L = new Label[], line[] l,
          align align = NoAlign, pen[] p = new pen[],
          arrowbar arrow = None,
          Label[] legend = new Label[], marker marker = nomarker,
          pathModifier pathModifier = NoModifier)
Draw each lines with the corresponding pen.
[Browse code]
draw(picture,triangle,pen,marker)
void draw(picture pic = currentpicture, triangle t, pen p = currentpen, marker marker = nomarker)
Draw sides of the triangle 't' on picture 'pic' using pen 'p'.
[Browse code]
draw(picture,triangle[],pen,marker)
void draw(picture pic = currentpicture, triangle[] t, pen p = currentpen, marker marker = nomarker)
Draw sides of the triangles 't' on picture 'pic' using pen 'p'.
[Browse code]
drawline(picture,triangle,pen)
void drawline(picture pic = currentpicture, triangle t, pen p = currentpen)
Draw lines of the triangle 't' on picture 'pic' using pen 'p'.
[Browse code] Example 0111
elle(real,real)
real elle(real phi, real k)
Legendre elliptic integral of the 2nd kind, evaluated using Carlson's functions RD and RF. The argument ranges are -infinity < phi < +infinity, 0 <= k * sin(phi) <= 1.
[Browse code]
ellipse(bqe)
ellipse ellipse(bqe bqe)
Return the ellipse a[0] * x^2 + a[1] * xy + a[2] * y^2 + a[3] * x + a[4] * y + a[5] = 0 given in the coordinate system of 'bqe' with a[i] = bque.a[i]. http://mathworld.wolfram.com/QuadraticCurve.html http://mathworld.wolfram.com/Ellipse.html.
[Browse code]
ellipse(point,point,point)
ellipse ellipse(point F1, point F2, point M)
Return the ellipse passing through 'M' whose the foci are 'F1' and 'F2'.
[Browse code]
ellipse(point,point,point,point,point)
ellipse ellipse(point M1, point M2, point M3, point M4, point M5)
Return the ellipse passing through the five points (if possible)
[Browse code] Example 0054
ellipse(point,point,real)
ellipse ellipse(point F1, point F2, real a)
Return the ellipse whose the foci are 'F1' and 'F2' and the semimajor axis is 'a'.
[Browse code]
ellipse(point,real,real,real)
ellipse ellipse(point C, real a, real b, real angle = 0)
Return the ellipse centered at 'C' with semimajor axis 'a' along C--C + dir(angle), semiminor axis 'b' along the perpendicular.
[Browse code]
ellipsenodesnumber(real,real)
int ellipsenodesnumber(real a, real b)
Return the number of nodes to draw a ellipse of axis 'a' and 'b'.
[Browse code]
ellipsenodesnumber(real,real,real)
int ellipsenodesnumber(real a, real b, real angle1, real angle2, bool dir)
Return the number of nodes to draw an ellipse arc.
[Browse code]
equation(ellipse)
bqe equation(ellipse el)
Return the coefficients of the equation of the ellipse in its coordinate system: bqe.a[0] * x^2 + bqe.a[1] * x * y + bqe.a[2] * y^2 + bqe.a[3] * x + bqe.a[4] * y + bqe.a[5] = 0. One can change the coordinate system of 'bqe' using the routine 'changecoordsys'.
[Browse code]
equation(explicit conic)
bqe equation(explicit conic co)
Return the coefficients of the equation of conic section in its coordinate system: bqe.a[0] * x^2 + bqe.a[1] * x * y + bqe.a[2] * y^2 + bqe.a[3] * x + bqe.a[4] * y + bqe.a[5] = 0. One can change the coordinate system of 'bqe' using the routine 'changecoordsys'.
[Browse code]
equation(hyperbola)
bqe equation(hyperbola h)
Return the coefficients of the equation of the hyperbola in its coordinate system. bqe.a[0] * x^2 + bqe.a[1] * x * y + bqe.a[2] * y^2 + bqe.a[3] * x + bqe.a[4] * y + bqe.a[5] = 0 One can change the coordinate system of 'bqe' using the routine 'changecoordsys'.
[Browse code]
equation(parabola)
bqe equation(parabola p)
Return the coefficients of the equation of the parabola in its coordinate system. bqe.a[0] * x^2 + bqe.a[1] * x * y + bqe.a[2] * y^2 + bqe.a[3] * x + bqe.a[4] * y + bqe.a[5] = 0 One can change the coordinate system of 'bqe' using the routine 'changecoordsys'.
[Browse code]
excenter(point,point,point)
point excenter(point A, point B, point C)
Return the center of the excircle of the triangle tangent with (AB).
[Browse code]
excenter(side,triangle)
point excenter(side side)
Return the center of the excircle tangent with the side 'side' of its triangle. side = 0 means AB, 1 means AC, other means BC. One must use the predefined sides t.AB, t.AC where 't' is a triangle....
[Browse code]
excircle(point,point,point)
circle excircle(point A, point B, point C)
Return the excircle of the triangle ABC tangent with (AB).
[Browse code] Example 0028
excircle(side,triangle)
circle excircle(side side)
Return the excircle tangent with the side 'side' of its triangle. side = 0 means AB, 1 means AC, other means BC. One must use the predefined sides t.AB, t.AC where 't' is a triangle....
[Browse code] Example 0111
exradius(point,point,point)
real exradius(point A, point B, point C)
Return the radius of the excircle of the triangle ABC with (AB).
[Browse code]
exradius(side,triangle)
real exradius(side side)
Return radius of the excircle tangent with the side 'side' of its triangle. side = 0 means AB, 1 means BC, other means CA. One must use the predefined sides t.AB, t.AC where 't' is a triangle....
[Browse code]
extend(line)
line extend(line l)
Return the infinite line passing through 'l.A' and 'l.B'.
[Browse code]
extouch(side)
triangle extouch(side side)
Return the triangle formed by the points of tangency of the triangle referenced by 'side' with its excircles. One vertex of the returned triangle is on the segment 'side'.
[Browse code] Example 0111
extouch(triangle)
triangle extouch(triangle t)
Return the extouch triangle of the triangle 't'. The extouch triangle of 't' is the triangle formed by the points of tangency of a triangle 't' with its excircles.
[Browse code] Example 0111
extouch(triangle)
triangle incentral(triangle t)
Return the incentral triangle of the triangle 't'. It is the triangle whose vertices are determined by the intersections of the reference triangle's angle bisectors with the respective opposite sides.
[Browse code] Example 0111
fermat(triangle)
point[] fermat(triangle t)
Return the Fermat points of 't'.
[Browse code]
finite(explicit point)
bool finite(explicit point p)
Avoid to compute 'finite((pair)(infinite_point))'.
[Browse code]
focusToCenter(ellipse,real)
real focusToCenter(ellipse el, real a)
Return the angle relatively to the center of 'el' for the angle 'a' given relatively to the focus of 'el'.
[Browse code]
foot(side)
point foot(side side)
Return the endpoint of the altitude on 'side'.
[Browse code]
foot(vertex)
point foot(vertex V)
Return the endpoint of the altitude from V.
[Browse code]
gergonne(triangle)
point gergonne(triangle t)
Return the Gergonne point of 't'.
[Browse code]
hline(coordsys)
line hline(coordsys R = currentcoordsys)
Return a horizontal line in 'R' passing through the origin of 'R'.
[Browse code]
hprojection(line,bool)
transform hprojection(line l, bool safe = false)
Return the projection on 'l' in parallel of E--W. If 'safe' is 'true' the projected point keeps the same place if 'l' is horizontal.
[Browse code] Example 0018
hyperbola(bqe)
hyperbola hyperbola(bqe bqe)
Return the hyperbola a[0]x^2 + a[1]xy + a[2]y^2 + a[3]x + a[4]y + a[5]] = 0 (a[n] means bqe.a[n]). http://mathworld.wolfram.com/QuadraticCurve.html http://mathworld.wolfram.com/Hyperbola.html
[Browse code] Example 0034
hyperbola(point,point,point,point,point)
hyperbola hyperbola(point M1, point M2, point M3, point M4, point M5)
Return the hyperbola passing through the five points (if possible).
[Browse code]
hyperbola(point,point,real,bool)
hyperbola hyperbola(point P1, point P2, real ae, bool byfoci = byfoci)
if 'byfoci = true': return the hyperbola whose the foci are 'P1' and 'P2' and the semimajor axis is 'ae'. else return the hyperbola whose vertexes are 'P1' and 'P2' with eccentricity 'ae'.
[Browse code] Example 0034
hyperbola(point,real,real,real)
hyperbola hyperbola(point C, real a, real b, real angle = 0)
Return the hyperbola centered at 'C' with semimajor axis 'a' along C--C + dir(angle), semiminor axis 'b' along the perpendicular.
[Browse code] Example 0034
hyperbolanodesnumber(hyperbola,real,real)
int hyperbolanodesnumber(hyperbola h, real angle1, real angle2)
Return the number of nodes for drawing an hyperbola.
[Browse code]
incenter(point,point,point)
point incenter(point A, point B, point C)
Return the center of the incircle of the triangle ABC.
[Browse code]
incenter(triangle)
point incenter(triangle t)
Return the center of the incircle of the triangle 't'.
[Browse code] Example 0114
incircle(point,point,point)
circle incircle(point A, point B, point C)
Return the incircle of the triangle ABC.
[Browse code] Example 0028
incircle(triangle)
circle incircle(triangle t)
Return the the incircle of the triangle 't'.
[Browse code] Example 0111
inradius(point,point,point)
real inradius(point A, point B, point C)
Return the radius of the incircle of the triangle ABC.
[Browse code]
inradius(triangle)
real inradius(triangle t)
Return the radius of the incircle of the triangle 't'.
[Browse code]
inside(ellipse,point)
bool inside(ellipse el, point M)
Return 'true' iff 'M' is inside 'el'.
[Browse code]
inside(parabola,point)
bool inside(parabola p, point M)
Return 'true' if 'M' is inside 'p'.
[Browse code]
intersect(path,explicit pair)
real[] intersect(path g, explicit pair p, real fuzz = 0)
[Browse code]
intersect(path,explicit point)
real[] intersect(path g, explicit point P, real fuzz = epsgeo)
[Browse code]
intersectionpoint(line,line)
point intersectionpoint(line l1, line l2)
Return the point of intersection of line 'l1' with 'l2'. If 'l1' and 'l2' have an infinity or none point of intersection, this routine return (infinity, infinity).
[Browse code] Example 0017
intersectionpoints(arc,arc)
point[] intersectionpoints(arc a1, arc a2)
[Browse code] Example 0101 Example 0102
intersectionpoints(bqe,bqe)
point[] intersectionpoints(bqe bqe1, bqe bqe2)
Return the interscetion of the two conic sections whose equations are 'bqe1' and 'bqe2'.
[Browse code]
intersectionpoints(circle,circle)
point[] intersectionpoints(circle c1, circle c2)
[Browse code] Example 0042
intersectionpoints(circle,ellipse)
point[] intersectionpoints(circle a, ellipse b)
[Browse code]
intersectionpoints(circle,hyperbola)
point[] intersectionpoints(circle a, hyperbola b)
[Browse code]
intersectionpoints(circle,parabola)
point[] intersectionpoints(circle a, parabola b)
[Browse code]
intersectionpoints(conic,arc)
point[] intersectionpoints(conic co, arc a)
intersectionpoints(arc, circle) is also defined.
[Browse code]
intersectionpoints(conic,conic)
point[] intersectionpoints(conic co1, conic co2)
Return the intersection points of the two conics.
[Browse code] Example 0076
intersectionpoints(ellipse,circle)
point[] intersectionpoints(ellipse a, circle b)
[Browse code]
intersectionpoints(ellipse,ellipse)
point[] intersectionpoints(ellipse a, ellipse b)
[Browse code] Example 0043
intersectionpoints(ellipse,hyperbola)
point[] intersectionpoints(ellipse a, hyperbola b)
[Browse code]
intersectionpoints(ellipse,parabola)
point[] intersectionpoints(ellipse a, parabola b)
[Browse code]
intersectionpoints(hyperbola,circle)
point[] intersectionpoints(hyperbola a, circle b)
[Browse code]
intersectionpoints(hyperbola,ellipse)
point[] intersectionpoints(hyperbola a, ellipse b)
[Browse code]
intersectionpoints(hyperbola,hyperbola)
point[] intersectionpoints(hyperbola a, hyperbola b)
[Browse code]
intersectionpoints(hyperbola,parabola)
point[] intersectionpoints(hyperbola a, parabola b)
[Browse code]
intersectionpoints(line,arc)
point[] intersectionpoints(line l, arc a)
intersectionpoints(arc, line) is also defined.
[Browse code] Example 0101 Example 0102
intersectionpoints(line,circle)
point[] intersectionpoints(line l, circle c)
Note that the line 'l' may be a segment by casting. intersectionpoints(circle, line) is also defined.
[Browse code] Example 0035 Example 0039 Example 0045
intersectionpoints(line,conic)
point[] intersectionpoints(line l, conic co)
Note that the line 'l' may be a segment by casting. intersectionpoints(conic, line) is also defined.
[Browse code]
intersectionpoints(line,ellipse)
point[] intersectionpoints(line l, ellipse el)
Note that the line 'l' may be a segment by casting. intersectionpoints(ellipse, line) is also defined.
[Browse code] Example 0036 Example 0040
intersectionpoints(line,hyperbola)
point[] intersectionpoints(line l, hyperbola h)
Note that the line 'l' may be a segment by casting. intersectionpoints(hyperbola, line) is also defined.
[Browse code] Example 0038
intersectionpoints(line,parabola)
point[] intersectionpoints(line l, parabola p)
Note that the line 'l' may be a segment by casting. intersectionpoints(parabola, line) is also defined.
[Browse code] Example 0037 Example 0041
intersectionpoints(line,path)
point[] intersectionpoints(line l, path g)
Return all points of intersection of the line 'l' with the path 'g'.
[Browse code] Example 0015
intersectionpoints(pair,pair,real,real,real,real,real,real)
pair[] intersectionpoints(pair A, pair B,
                          real a, real b, real c, real d, real f, real g)
Intersection points with the line (AB) and the quadric curve a * x^2 + b * x * y + c * y^2 + d * x + f * y + g = 0 given in the default coordinate system
[Browse code]
intersectionpoints(pair,pair,real[])
pair[] intersectionpoints(pair A, pair B, real[] equation)
Return the intersection points of the line AB with the conic whose an equation is equation[0] * x^2 + equation[1] * x * y + equation[2] * y^2 + equation[3] * x + equation[4] * y + equation[5] = 0
[Browse code]
intersectionpoints(parabola,circle)
point[] intersectionpoints(parabola a, circle b)
[Browse code]
intersectionpoints(parabola,ellipse)
point[] intersectionpoints(parabola a, ellipse b)
[Browse code]
intersectionpoints(parabola,hyperbola)
point[] intersectionpoints(parabola a, hyperbola b)
[Browse code]
intersectionpoints(parabola,parabola)
point[] intersectionpoints(parabola a, parabola b)
[Browse code]
intersectionpoints(triangle,conic,bool)
point[] intersectionpoints(triangle t, conic co, bool extended = false)
Return the intersection points. If 'extended' is true, the sides are lines else the sides are segments. intersectionpoints(conic, triangle, bool) is also defined.
[Browse code] Example 0115
intersectionpoints(triangle,line,bool)
point[] intersectionpoints(triangle t, line l, bool extended = false)
Return the intersection points. If 'extended' is true, the sides are lines else the sides are segments. intersectionpoints(line, triangle, bool) is also defined.
[Browse code] Example 0115
intouch(side)
point intouch(side side)
The point of tangency on the side 'side' of its incircle.
[Browse code] Example 0111
intouch(triangle)
triangle intouch(triangle t)
Return the intouch triangle of the triangle 't'. The intouch triangle of 't' is the triangle formed by the points of tangency of a triangle 't' with its incircles.
[Browse code]
inverse(real k,point,point)
point inverse(real k, point A, point M)
Return the inverse point of 'M' with respect to point A and inversion radius 'k'.
[Browse code]
inverse(real,point,circle)
circle inverse(real k, point A, circle c)
Return the inverse circle of 'c' with respect to point A and inversion radius 'k'.
[Browse code]
inverse(real,point,line)
circle inverse(real k, point A, line l)
Return the inverse circle of 'l' with respect to point 'A' and inversion radius 'k'.
[Browse code]
inverse(real,point,segment)
arc inverse(real k, point A, segment s)
Return the inverse arc circle of 's' with respect to point A and inversion radius 'k'.
[Browse code]
inversion(circle)
inversion inversion(circle c)
Return the inversion represented by the circle of 'c'.
[Browse code]
inversion(circle,circle)
inversion inversion(circle c1, circle c2, real sgn = 1)
Return the inversion which transforms 'c1' to . 'c2' and positive inversion radius if 'sgn > 0'; . 'c2' and negative inversion radius if 'sgn < 0'; . 'c1' and 'c2' to 'c2' if 'sgn = 0'.
[Browse code]
inversion(circle,circle,circle)
inversion inversion(circle c1, circle c2, circle c3)
Return the inversion which transform 'c1' to 'c1', 'c2' to 'c2' and 'c3' to 'c3'.
[Browse code]
inversion(real,point)
inversion inversion(real k, point C)
Return the inversion with respect to 'C' having inversion radius 'k'.
[Browse code]
inversion(real,point)
inversion inversion(point C, real k)
Return the inversion with respect to 'C' having inversion radius 'k'.
[Browse code]
isogonal(side,point)
point isogonal(side side, point M)
http://mathworld.wolfram.com/IsogonalConjugate.html
[Browse code]
isogonal(triangle,point)
triangle isogonal(triangle t, point M)
http://mathworld.wolfram.com/IsogonalConjugate.html
[Browse code]
isogonal(vertex,point)
line isogonal(vertex V, point M)
http://mathworld.wolfram.com/IsogonalConjugate.html
[Browse code]
isogonalconjugate(triangle,point)
point isogonalconjugate(triangle t, point M)
http://mathworld.wolfram.com/IsogonalConjugate.html
[Browse code]
isotomic(side,point)
point isotomic(side side, point M)
http://mathworld.wolfram.com/IsotomicConjugate.html
[Browse code]
isotomic(triangle,point)
triangle isotomic(triangle t, point M)
http://mathworld.wolfram.com/IsotomicConjugate.html
[Browse code]
isotomic(vertex,point)
line isotomic(vertex V, point M)
http://mathworld.wolfram.com/IsotomicConjugate.html.
[Browse code]
isotomicconjugate(triangle,point)
point isotomicconjugate(triangle t, point M)
http://mathworld.wolfram.com/IsotomicConjugate.html
[Browse code]
isparabola(bqe)
bool isparabola(bqe bqe)
Return true iff 'bqe' is the equation of a parabola.
[Browse code]
label(picture,Label,Label,Label,triangle,real,real,pen,filltype)
void label(picture pic = currentpicture, Label LA = "$A$",
           Label LB = "$B$", Label LC = "$C$",
           triangle t,
           real alignAngle = 0,
           real alignFactor = 1,
           pen p = nullpen, filltype filltype = NoFill)
Draw labels LA, LB and LC aligned in the rotated (by 'alignAngle' in degrees) direction (towards the outside of the triangle) of the interior angle bisector of vertices. One can individually modify the alignment by setting the Label parameter 'align'.
[Browse code] Example 0110 Example 0111
label(picture,Label,explicit mass,align,string,pen,filltype)
void label(picture pic = currentpicture, Label L, explicit mass M,
           align align = NoAlign, string format = defaultmassformat,
           pen p = nullpen, filltype filltype = NoFill)
Draw label returned by massformat(format, L, M) at coordinates of M. Look at massformat(string, string, mass).
[Browse code]
length(explicit point)
real length(explicit point M)
Return the modulus |M| in its coordinate system (same as 'abs').
[Browse code]
length(segment)
real length(segment s)
Return the length of 's'.
[Browse code]
line(coordsys,real,real)
line line(coordsys R = currentcoordsys, real slope, real origin)
Return the line defined by slope and y-intercept relative to 'R'.
[Browse code]
line(coordsys,real,real,real)
line line(coordsys R = currentcoordsys, real a, real b, real c)
Retrun the line defined by equation relative to 'R'.
[Browse code]
line(explicit side)
line line(explicit side side)
Return 'side' as line.
[Browse code]
line(point,bool,point,bool)
line line(point A, bool extendA = true, point B, bool extendB = true)
Return the line passing through 'A' and 'B'. If 'extendA' is true, the "line" is infinite in the direction of A. A "line" can be half-line or segment.
[Browse code] Example 0016
line(real,point)
line line(real a, point A = point(currentcoordsys, (0, 0)))
Return the line passing through 'A' with an angle (in the coordinate system of A) 'a' in degrees. line(point, real) is also defined.
[Browse code] Example 0019
line(segment)
line line(segment s)
Return the line passing through 's.A' and 's.B'.
[Browse code]
linemargin()
real linemargin()
Return the margin used to draw lines.
[Browse code]
locate(explicit vector)
pair locate(explicit vector v)
Return the coordinates of 'v' in the default coordinate system (like casting vector to pair).
[Browse code] Example 0005
locate(pair)
point locate(pair p)
Return the point in the current coordinate system 'currentcoordsys'.
[Browse code] Example 0003
locate(point)
pair locate(point P)
Return the coordinates of 'P' in the default coordinate system.
[Browse code] Example 0003
lvoid label(picture,Label,vertex,pair,real,pen,filltype)
void label(picture pic = currentpicture, Label L, vertex V,
           pair align = dir(V),
           real alignFactor = 1,
           pen p = nullpen, filltype filltype = NoFill)
Draw 'L' on picture 'pic' at vertex 'V' aligned by 'alignFactor * align'.
[Browse code]
markangle(picture,Label,int,real,real,explicit line,explicit line,explicit pair,arrowbar,pen,filltype,margin,marker)
void markangle(picture pic = currentpicture,
               Label L = "", int n = 1, real radius = 0, real space = 0,
               explicit line l1, explicit line l2, explicit pair align = dir(1),
               arrowbar arrow = None, pen p = currentpen,
               filltype filltype = NoFill,
               margin margin = NoMargin, marker marker = nomarker)
Mark the angle (l1, l2) aligned in the direction 'align' relative to 'l1'. Commune values for 'align' are dir(real).
[Browse code]
markangle(picture,Label,int,real,real,explicit line,explicit line,explicit vector,arrowbar,pen,filltype,margin,marker)
void markangle(picture pic = currentpicture,
               Label L = "", int n = 1, real radius = 0, real space = 0,
               explicit line l1, explicit line l2, explicit vector align,
               arrowbar arrow = None, pen p = currentpen,
               filltype filltype = NoFill,
               margin margin = NoMargin, marker marker = nomarker)
Mark the angle (l1, l2) in the direction 'dir' given relatively to 'l1'.
[Browse code]
markangle(picture,Label,int,real,real,line,line,arrowbar,pen,filltype,margin,marker)
// void markangle(picture pic = currentpicture,
//                Label L = "", int n = 1, real radius = 0, real space = 0,
//                explicit line l1, explicit line l2,
//                arrowbar arrow = None, pen p = currentpen,
//                filltype filltype = NoFill,
//                margin margin = NoMargin, marker marker = nomarker)
// {/*
Mark the oriented angle (l1, l2).
[Browse code] Example 0021 Example 0022
markarc(picture,Label,int,real,real,arc,arrowbar,pen,pen,margin,marker)
void markarc(picture pic = currentpicture,
             Label L = "",
             int n = 1, real radius = 0, real space = 0,
             arc a,
             pen sectorpen = currentpen,
             pen markpen = sectorpen,
             margin margin = NoMargin,
             arrowbar arrow = None,
             marker marker = nomarker)
[Browse code] Example 0082 Example 0083 Example 0084 Example 0085
markrightangle(picture,point,point,point,real,pen,margin,filltype)
void markrightangle(picture pic = currentpicture, point A, point O,
                    point B, real size = 0, pen p = currentpen,
                    margin margin = NoMargin,
                    filltype filltype = NoFill)
Mark the angle AOB with a perpendicular symbol.
[Browse code] Example 0017
mass(coordsys,explicit pair,real)
mass mass(coordsys R, explicit pair p, real m)
Return the mass which has coordinates 'p' with respect to 'R' and weight 'm'.
[Browse code]
mass(explicit point)
mass mass(explicit point P)
Cast 'P' to mass.
[Browse code]
mass(point,real)
mass mass(point M, real m)
Constructor of mass point.
[Browse code] Example 0107
masscenter(... mass[])
mass masscenter(... mass[] M)
Return the center of the masses 'M'.
[Browse code] Example 0107
massformat(string,string,mass)
string massformat(string format = defaultmassformat,
                  string s, mass M)
Return the string formated by 'format' with the mass value. In the parameter 'format', %L will be replaced by 's'. Look at defaultmassformat.
[Browse code]
medial(triangle t)
triangle medial(triangle t)
Return the triangle whose vertices are midpoints of the sides of 't'.
[Browse code]
median(side)
line median(side side)
Return median from the opposite vertex of 'side'.
[Browse code]
median(vertex)
line median(vertex V)
Return median from 'V'.
[Browse code] Example 0112
midpoint(segment)
point midpoint(segment s)
Return the midpoint of 's'.
[Browse code]
midpoint(side)
point midpoint(side side)
[Browse code]
nodabscissa(arc,point)
abscissa nodabscissa(arc a, point M)
Return the node abscissa according to the arc 'a'.
[Browse code] Example 0094 Example 0095
nodabscissa(circle,point)
abscissa nodabscissa(circle c, point M)
Return the node abscissa of 'M' on the circle 'c'.
[Browse code] Example 0073
nodabscissa(conic,point)
abscissa nodabscissa(conic co, point M)
Return the node abscissa of 'M' on the conic 'co'.
[Browse code]
nodabscissa(ellipse,point)
abscissa nodabscissa(ellipse el, point M)
Return the node abscissa of 'M' on the ellipse 'el'.
[Browse code] Example 0074
nodabscissa(line,point)
abscissa nodabscissa(line l, point M)
Return the node abscissa of 'M' on the line 'l'.
[Browse code]
nodabscissa(parabola,point)
abscissa nodabscissa(parabola p, point M)
Return the node abscissa OF 'M' on the parabola 'p'.
[Browse code] Example 0075
nodabscissa(real)
abscissa nodabscissa(real x)
Return an abscissa as time on the path.
[Browse code] Example 0069 Example 0070 Example 0071 Example 0072
onpath(picture,path,point,pen)
bool onpath(picture pic = currentpicture, path g, point M, pen p = currentpen)
Return true iff 'M' is on the path drawn with the pen 'p' in 'pic'.
[Browse code] Example 0026
opposite(side)
vertex opposite(side side)
Return the opposite vertex of side 'side'.
[Browse code]
opposite(vertex)
side opposite(vertex V)
Return the opposite side of vertex 'V'.
[Browse code]
origin(coordsys)
point origin(coordsys R = currentcoordsys)
Return the origin of the coordinate system 'R'.
[Browse code]
orthic(triangle)
triangle orthic(triangle t)
Return the triangle whose vertices are endpoints of the altitudes from each of the vertices of 't'.
[Browse code]
orthocentercenter(point,point,point)
point orthocentercenter(point A, point B, point C)
Return the orthocenter of the triangle ABC.
[Browse code]
orthocentercenter(triangle)
point orthocentercenter(triangle t)
Return the orthocenter of the triangle t.
[Browse code]
pair coordinates(point)
pair coordinates(point M)
Return the coordinates of 'M' in its coordinate system.
[Browse code]
parabola(bqe)
parabola parabola(bqe bqe)
Return the parabola a[0]x^2 + a[1]xy + a[2]y^2 + a[3]x + a[4]y + a[5]] = 0 (a[n] means bqe.a[n]). http://mathworld.wolfram.com/QuadraticCurve.html http://mathworld.wolfram.com/Parabola.html
[Browse code]
parabola(point,line)
parabola parabola(point F, line l)
Return the parabola whose focus is 'F' and directrix is 'l'.
[Browse code] Example 0032
parabola(point,point)
parabola parabola(point F, point vertex)
Return the parabola whose focus is 'F' and vertex is 'vertex'.
[Browse code] Example 0032
parabola(point,point,point,line)
parabola parabola(point M1, point M2, point M3, line l)
Return the parabola passing through the three points with its directix parallel to the line 'l'.
[Browse code] Example 0055
parabola(point,point,point,point,point)
parabola parabola(point M1, point M2, point M3, point M4, point M5)
Return the parabola passing through the five points.
[Browse code]
parabola(point,real,real)
parabola parabola(point F, real a, real angle)
Return the parabola whose focus is F, latus rectum is 4a and the angle of the axis of symmetry (in the coordinate system of F) is 'angle'.
[Browse code] Example 0032
parabolanodesnumber(parabola,real,real)
int parabolanodesnumber(parabola p, real angle1, real angle2)
Return the number of nodes for drawing a parabola.
[Browse code] Example 0071
parallel(line,line)
bool parallel(line l1, line l2, bool strictly = false)
Return 'true' if 'l1' and 'l2' are (strictly ?) parallel.
[Browse code]
parallel(point,explicit pair)
line parallel(point M, explicit pair dir)
Return the line of direction 'dir' and passing through 'M'.
[Browse code]
parallel(point,explicit vector)
line parallel(point M, explicit vector dir)
Return the line of direction 'dir' and passing through 'M'.
[Browse code]
parallel(point,line)
line parallel(point M, line l)
Return the line parallel to 'l' passing through 'M'.
[Browse code] Example 0017
pedal(triangle,point)
triangle pedal(triangle t, point M)
Return the pedal triangle of 'M' in 't'. http://mathworld.wolfram.com/PedalTriangle.html
[Browse code]
pedal(triangle,point)
line pedal(side side, point M)
Return the pedal line of 'M' cutting 'side'. http://mathworld.wolfram.com/PedalTriangle.html
[Browse code]
perpendicular(line,line)
bool perpendicular(line l1, line l2)
Return 'true' if 'l1' and 'l2' are perpendicular.
[Browse code]
perpendicular(point,explicit pair)
line perpendicular(point M, explicit pair normal)
Return the line passing through 'M' whose normal is \param{normal} (given in the currentcoordsys).
[Browse code]
perpendicular(point,explicit vector)
line perpendicular(point M, explicit vector normal)
Return the line passing through 'M' whose normal is \param{normal}.
[Browse code]
perpendicular(point,line)
line perpendicular(point M, line l)
Return the perpendicular line of 'l' passing through 'M'.
[Browse code] Example 0017
perpendicularmark(picture,line,line,real,pen,int,margin,filltype)
void perpendicularmark(picture pic = currentpicture, line l1, line l2,
                       real size = 0, pen p = currentpen, int quarter = 1,
                       margin margin = NoMargin, filltype filltype = NoFill)
Draw a right angle at the intersection point of lines and aligned in the 'quarter' nth quarter of circle formed by 'l1.u' and 'l2.u'.
[Browse code]
perpendicularmark(picture,point,explicit pair,explicit pair,real,pen,margin,filltype)
void perpendicularmark(picture pic = currentpicture, point z,
                       explicit pair align,
                       explicit pair dir = E, real size = 0,
                       pen p = currentpen,
                       margin margin = NoMargin,
                       filltype filltype = NoFill)
Draw a perpendicular symbol at z aligned in the direction align relative to the path z--z + dir. dir(45 + n * 90), where n in N*, are common values for 'align'.
[Browse code]
perpendicularmark(picture,point,explicit pair,path,real,pen,margin,filltype)
void perpendicularmark(picture pic = currentpicture, point z, explicit pair align, path g,
                       real size = 0, pen p = currentpen,
                       margin margin = NoMargin,
                       filltype filltype = NoFill)
Draw a perpendicular symbol at z aligned in the direction align relative to the path z--z + dir(g, 0). dir(45 + n * 90), where n in N, are common values for 'align'.
[Browse code]
perpendicularmark(picture,point,vector,path,real,pen,margin,filltype)
void perpendicularmark(picture pic = currentpicture, point z, vector align, path g,
                       real size = 0, pen p = currentpen,
                       margin margin = NoMargin,
                       filltype filltype = NoFill)
Draw a perpendicular symbol at z aligned in the direction align relative to the path z--z + dir(g, 0). dir(45 + n * 90), where n in N, are common values for 'align'.
[Browse code]
perpendicularmark(picture,point,vector,vector,real,pen,margin,filltype)
void perpendicularmark(picture pic = currentpicture, point z,
                       vector align,
                       vector dir = E, real size = 0,
                       pen p = currentpen,
                       margin margin = NoMargin,
                       filltype filltype = NoFill)
Draw a perpendicular symbol at z aligned in the direction align relative to the path z--z + dir. dir(45 + n * 90), where n in N, are common values for 'align'.
[Browse code]
point(arc,abscissa)
point point(arc a, abscissa l)
Return the point of 'a' which has the abscissa 'l.x' according to the abscissa system 'l.system'. Note that 'a.polarconicroutine' is used instead of 'l.polarconicroutine'. Look at struct abscissa
[Browse code] Example 0086 Example 0087
point(arc,real)
point point(arc a, real x)
Return the point between node floor(t) and floor(t) + 1.
[Browse code] Example 0092 Example 0093
point(circle,abscissa)
point point(circle c, abscissa l)
Return the point of 'c' which has the abscissa 'l.x' according to the abscissa system 'l.system'.
[Browse code] Example 0057
point(circle,explicit vector)
point point(circle c, explicit vector v)
Return the intersection point of 'c' with the half-line '[c.C v)'.
[Browse code]
point(circle,point)
point point(circle c, point M)
Return the intersection point of 'c' with the half-line '[c.C M)'.
[Browse code]
point(conic,point)
point point(explicit conic co, abscissa l)
Return the curvilinear abscissa of 'M' on the conic 'co'.
[Browse code]
point(coordsys,explicit point,real)
point point(coordsys R, explicit point M, real m = M.m)
Return the point of 'R' which has the coordinates of 'M' and the mass 'm'. Do not confuse this routine with the further routine 'changecoordsys'.
[Browse code] Example 0003 Example 0004
point(coordsys,pair,real)
point point(coordsys R, pair p, real m = 1)
Return the point which has the coodinates 'p' in the coordinate system 'R' and the mass 'm'.
[Browse code] Example 0004
point(ellipse,abscissa)
point point(ellipse el, abscissa l)
Return the point of 'el' which has the abscissa 'l.x' according to the abscissa system 'l.system'.
[Browse code] Example 0058
point(explicit circle,explicit real)
point point(explicit circle c, explicit real x)
Return the point between node floor(x) and floor(x) + 1.
[Browse code] Example 0069
point(explicit conic,explicit real)
point point(explicit conic co, explicit real x)
Return the point between node floor(x) and floor(x) + 1.
[Browse code]
point(explicit ellipse,explicit real)
point point(explicit ellipse el, explicit real x)
Return the point between node floor(x) and floor(x) + 1.
[Browse code] Example 0070
point(explicit hyperbola,explicit real)
point point(explicit hyperbola h, explicit real x)
Return the point between node floor(x) and floor(x) + 1.
[Browse code] Example 0072
point(explicit mass)
point point(explicit mass m){return m;}
Cast 'm' to point
[Browse code]
point(explicit pair,real)
point point(explicit pair p, real m)
Return the point which has the coodinates 'p' in the current coordinate system and the mass 'm'.
[Browse code]
point(explicit parabola,explicit real)
point point(explicit parabola p, explicit real x)
Return the point between node floor(x) and floor(x) + 1.
[Browse code] Example 0071
point(explicit vector)
point point(explicit vector u)
Return the point M so that OM = u, where O is the origin of the coordinate system of 'u'.
[Browse code]
point(explicit vertex)
point point(explicit vertex V)
Return the point corresponding to the vertex 'V'.
[Browse code]
point(hyperbola,abscissa)
point point(hyperbola h, abscissa l)
Return the point of 'h' which has the abscissa 'l.x' according to the abscissa system 'l.system'.
[Browse code] Example 0067
point(line,abscissa)
point point(line l, abscissa x)
Return the point of 'l' which has the abscissa 'l.x' according to the abscissa system 'l.system'. Note that the origin is l.A, and point(l, relabscissa(x)) returns l.A + x.x * vector(l.B - l.A).
[Browse code]
point(line,real)
point point(line l, explicit real x)
Return the point between node l.A and l.B (x <= 0 means l.A, x >=1 means l.B).
[Browse code] Example 0025 Example 0105
point(parabola,abscissa)
point point(parabola p, abscissa l)
Return the point of 'p' which has the abscissa 'l.x' according to the abscissa system 'l.system'.
[Browse code] Example 0059 Example 0062 Example 0066
polarconicroutine(ellipse)
polarconicroutine polarconicroutine(conic co)
Return the default routine used to draw a conic.
[Browse code]
projection(line)
transform projection(line l)
Return the orthogonal projection on 'l'.
[Browse code] Example 0018
projection(line,line,bool)
transform projection(line l1, line l2, bool safe = false)
Return the projection on (AB) in parallel of (CD). If 'safe = true' and (l1)//(l2) return the identity. If 'safe = false' and (l1)//(l2) return a infinity scaling.
[Browse code] Example 0018 Example 0019
projection(point,point)
transform projection(point A, point B)
Return the orthogonal projection on the line (AB).
[Browse code]
projection(point,point,point,point,bool)
transform projection(point A, point B, point C, point D, bool safe = false)
Return the (CD) parallel projection on (AB). If 'safe = true' and (AB)//(CD) return the identity. If 'safe = false' and (AB)//(CD) return an infinity scaling.
[Browse code] Example 0007
radicalcenter(circle,circle)
point radicalcenter(circle c1, circle c2)
http://fr.wikipedia.org/wiki/Puissance_d'un_point_par_rapport_%C3%A0_un_cercle
[Browse code] Example 0042
radicalcenter(circle,circle,circle)
point radicalcenter(circle c1, circle c2, circle c3)
http://fr.wikipedia.org/wiki/Puissance_d'un_point_par_rapport_%C3%A0_un_cercle
[Browse code]
radicalline(circle,circle)
line radicalline(circle c1, circle c2)
http://fr.wikipedia.org/wiki/Puissance_d'un_point_par_rapport_%C3%A0_un_cercle
[Browse code] Example 0042
rd(real,real,real)
real rd(real x, real y, real z)
Computes Carlson's elliptic integral of the second kind. x and y must be positive, and at most one can be zero. z must be non negative.
[Browse code]
realquarticroots(real,real,real,real,real)
real[] realquarticroots(real a, real b, real c, real d, real e)
Return the real roots of the quartic equation ax^4 + b^x3 + cx^2 + dx = 0.
[Browse code]
reflect(line)
transform reflect(line l)
Return the reflect about the line 'l'.
[Browse code]
reflect(line,line)
transform reflect(line l1, line l2, bool safe = false)
Return the reflect about the line 'l1' in the direction of 'l2'.
[Browse code]
relabscissa(arc,point)
abscissa relabscissa(arc a, point M)
Return the relative abscissa according to the arc 'a'.
[Browse code] Example 0094 Example 0095
relabscissa(circle,point)
abscissa relabscissa(circle c, point M)
Return the relative abscissa of 'M' on the circle 'c'.
[Browse code] Example 0073
relabscissa(conic,point)
abscissa relabscissa(conic co, point M)
Return the relative abscissa of 'M' on the conic 'co'.
[Browse code]
relabscissa(ellipse,point)
abscissa relabscissa(ellipse el, point M)
Return the relative abscissa of 'M' on the ellipse 'el'.
[Browse code] Example 0074
relabscissa(line,point)
abscissa relabscissa(line l, point M)
Return the relative abscissa of 'M' on the line 'l'.
[Browse code] Example 0056
relabscissa(real)
abscissa relabscissa(real x)
Return a relative abscissa.
[Browse code]
relpoint(arc,real)
point relpoint(arc a, real x)
Return the relative point of 'a'. If x > 1 or x < 0, the returned point is on the extended arc.
[Browse code] Example 0086 Example 0087
relpoint(explicit circle,real)
point relpoint(explicit circle c, real x)
Return the relative point of 'c' (0 means origin, 1 means end). Origin is c.center + c.r * (1, 0).
[Browse code] Example 0057
relpoint(explicit conic,explicit real)
point relpoint(explicit conic co, explicit real x)
Return the relative point of 'co' (0 means origin, 1 means end).
[Browse code]
relpoint(explicit ellipse,real)
point relpoint(explicit ellipse el, real x)
Return the relative point of 'el' (0 means origin, 1 means end).
[Browse code] Example 0058
relpoint(explicit hyperbola,real)
point relpoint(explicit hyperbola h, real x)
Not yet implemented...
[Browse code]
relpoint(explicit parabola,real)
point relpoint(explicit parabola p, real x)
Return the relative point of the path of the parabola bounded by the bounding box of the current picture. 0 means origin, 1 means end, where the origin is the vertex of 'p'.
[Browse code] Example 0059
relpoint(line,real)
point relpoint(line l, real x)
Return the relative point of 'l' (0 means l.A, 1 means l.B, x means l.A + x * vector(l.B - l.A) ).
[Browse code] Example 0056
reverse(arc)
arc reverse(arc a)
Return arc 'a' oriented in reverse direction.
[Browse code] Example 0080 Example 0081 Example 0091
reverse(line)
line reverse(line l)
Permute the points 'A' and 'B' of 'l' and so its orientation.
[Browse code]
rf(real,real,real)
real rf(real x, real y, real z)
Computes Carlson's elliptic integral of the first kind. x, y, and z must be non negative, and at most one can be zero.
[Browse code]
rotate(explicit vector)
transform rotate(explicit vector dir)
A rotation in the direction 'dir' limited to [-90, 90] This is useful for rotating text along a line in the direction dir. rotate(explicit point dir) is also defined.
[Browse code]
rotateO(real)
transform rotateO(real a)
Rotation around the origin of the current coordinate system.
[Browse code] Example 0006
samecoordsys(bool...bqe[])
bool samecoordsys(bool warn = true ... bqe[] bqes)
Return true if all the bivariate quadratic equations have the same coordinate system.
[Browse code]
sameside(point,line,line)
point[] sameside(point M, line l1, line l2)
Return two points on 'l1' and 'l2' respectively. The first point is from the same side of M relatively to 'l2', the second point is from the same side of M relatively to 'l1'.
[Browse code] Example 0020
sameside(point,point,line)
bool sameside(point M, point P, line l)
Return 'true' iff 'M' and 'N' are same side of the line (or on the line) 'l'.
[Browse code]
sameside(point,point,point)
bool sameside(point M, point N, point O)
Return 'true' iff 'M' and 'N' are same side of the point 'O'.
[Browse code]
scale(real,line,line,bool)
transform scale(real k, line l1, line l2, bool safe = false)
Return the dilatation with respect to 'l1' in the direction of 'l2'.
[Browse code]
scale(real,point)
transform scale(real k, point M)
Homothety.
[Browse code] Example 0006
scale(real,point,point,point,point,bool)
transform scale(real k, point A, point B, point C, point D, bool safe = false)
http://fr.wikipedia.org/wiki/Affinit%C3%A9_%28math%C3%A9matiques%29 (help me for English translation...) If 'safe = true' and (AB)//(CD) return the identity. If 'safe = false' and (AB)//(CD) return a infinity scaling.
[Browse code] Example 0007
scaleO(real)
transform scaleO(real x)
Homothety from the origin of the current coordinate system.
[Browse code] Example 0006
sector(int,int,line,line,real,bool)
line sector(int n = 2, int p = 1, line l1, line l2, real angle = 0, bool sharp = true)
Return the p-th nth-sector of the angle formed by the oriented line 'l1' and 'l2' rotated by the angle 'angle' (in degrees) around the intersection point of 'l1' with 'l2'. If 'sharp' is true (the default), this routine returns the bisector of the sharp angle. Note that the returned line inherit of coordinate system of 'l1'.
[Browse code]
segment(explicit side)
segment segment(explicit side side)
Return 'side' as segment.
[Browse code]
segment(line)
segment segment(line l)
Return the segment whose extremities are 'l.A' and 'l.B'.
[Browse code]
segment(point,point)
segment segment(point A, point B)
Return the segment whose the extremities are A and B.
[Browse code]
sgnd(real)
int sgnd(real x)
Return the -1 if x < 0, 1 if x >= 0.
[Browse code]
sharpangle(line,line)
real sharpangle(line l1, line l2)
Return the measure in radians of the sharp angle formed by 'l1' and 'l2'.
[Browse code]
sharpdegrees(line,line)
real sharpdegrees(line l1, line l2)
Return the measure in degrees of the sharp angle formed by 'l1' and 'l2'.
[Browse code] Example 0021
show(Label,pen,arrowbar)
void show(Label L, vector v, pen p = currentpen, arrowbar arrow = Arrow)
Draw the vector v (from the origin of its coordinate system).
[Browse code]
show(picture,Label,Label,Label,Label,Label,Label,triangle,pen,filltype)
void show(picture pic = currentpicture,
          Label LA = "$A$", Label LB = "$B$", Label LC = "$C$",
          Label La = "$a$", Label Lb = "$b$", Label Lc = "$c$",
          triangle t, pen p = currentpen, filltype filltype = NoFill)
Draw triangle and labels of sides and vertices.
[Browse code] Example 0108
show(picture,Label,Label,Label,coordsys,pen,pen,pen,pen,pen)
void show(picture pic = currentpicture, Label lo = "$O$",
          Label li = "$\vec{\imath}$",
          Label lj = "$\vec{\jmath}$",
          coordsys R,
          pen dotpen = currentpen, pen xpen = currentpen, pen ypen = xpen,
          pen ipen = red,
          pen jpen = ipen,
          arrowbar arrow = Arrow)
Draw the components (O, i, j, x - axis, y - axis) of 'R'.
[Browse code]
show(picture,line,pen)
void show(picture pic = currentpicture, line l, pen p = red)
Draw some informations of 'l'.
[Browse code] Example 0025
simeq(point,point,real)
bool simeq(point A, point B, real fuzz = epsgeo)
Return true iff abs(A - B) < fuzz. This routine is used internally to know if two points are equal, in particular by the operator == in 'point == point'.
[Browse code]
standardizecoordsys(coordsys,bool...point[])
point[] standardizecoordsys(coordsys R = currentcoordsys,
                            bool warn = true ... point[] M)
Return the points with the same coordinate system 'R'. If 'warn' is true and the coordinate systems are different, a warning is sent.
[Browse code]
symmedial(triangle)
triangle symmedial(triangle t)
Return the symmedial triangle of 't'.
[Browse code] Example 0112
symmedian(side)
point symmedian(side side)
The symmedian point on the side 'side'.
[Browse code]
symmedian(triangle)
point symmedian(triangle t)
Return the symmedian point of 't'.
[Browse code] Example 0112
symmedian(vertex)
line symmedian(vertex V)
Return the symmedian passing through 'V'.
[Browse code] Example 0112
tangent(circle,abscissa)
line tangent(circle c, abscissa x)
Return the tangent of 'c' at 'point(c, x)'.
[Browse code] Example 0044
tangent(circle,explicit vector)
line tangent(circle c, explicit vector v)
Return the tangent of 'c' at the point M so that vec(c.C M) is collinear to 'v' with the same sense.
[Browse code]
tangent(circle,point)
line tangent(circle c, point M)
Return the tangent of 'c' at the intersection point of the half-line'[c.C M)'.
[Browse code] Example 0044
tangent(ellipse,abscissa)
line tangent(ellipse el, abscissa x)
Return the tangent of 'el' at 'point(el, x)'.
[Browse code] Example 0046
tangent(explicit arc,abscissa)
line tangent(explicit arc a, abscissa x)
Return the tangent of 'a' at 'point(a, x)'.
[Browse code] Example 0103 Example 0104
tangent(explicit arc,point)
line tangent(explicit arc a, point M)
Return the tangent of 'a' at 'M'. The points 'M' must belong to the arc 'a'.
[Browse code] Example 0103 Example 0104
tangent(hyperbola,abscissa)
line tangent(hyperbola h, abscissa x)
Return the tangent of 'h' at 'point(p, x)'.
[Browse code] Example 0048
tangent(parabola,abscissa)
line tangent(parabola p, abscissa x)
Return the tangent of 'p' at 'point(p, x)' (use the Wells method).
[Browse code] Example 0047
tangential(triangle)
triangle tangential(triangle t)
Return the tangential triangle of the triangle 't'. The tangential triangle of 't' is the triangle formed by the lines tangent to the circumcircle of the given triangle 't' at its vertices.
[Browse code] Example 0111
tangents(circle,point)
line[] tangents(circle c, point M)
Return the tangents of 'c' passing through 'M'.
[Browse code] Example 0045 Example 0050
tangents(ellipse,point)
line[] tangents(ellipse el, point M)
Return the tangents of 'el' passing through 'M'.
[Browse code] Example 0046
tangents(hyperbola,point)
line[] tangents(hyperbola h, point M)
Return the tangent of 'h' at 'M'.
[Browse code] Example 0049
tangents(parabola,point)
line[] tangents(parabola p, point M)
Return the tangent of 'p' at 'M' (use the Wells method).
[Browse code] Example 0047
triangle(line,line,line)
triangle triangle(line l1, line l2, line l3)
Return the triangle defined by three line.
[Browse code]
triangleAbc(real,real,real,real,point)
triangle triangleAbc(real alpha, real b, real c, real angle = 0, point A = (0, 0))
Return the triangle ABC rotated by 'angle' with BAC = alpha, AC = b and AB = c.
[Browse code] Example 0109
triangleabc(real,real,real,real,point)
triangle triangleabc(real a, real b, real c, real angle = 0, point A = (0, 0))
Return the triangle ABC rotated by 'angle' with BC = a, AC = b and AB = c.
[Browse code] Example 0108
tricoef(side)
int[] tricoef(side side)
Return an array of integer (values are 0 or 1) which represents 'side'. For example, side = t.BC will be represented by {0, 1, 1}.
[Browse code]
trilinear(triangle,centerfunction,real,real,real)
trilinear trilinear(triangle t, centerfunction f, real a = t.a(), real b = t.b(), real c = t.c())
http://mathworld.wolfram.com/TriangleCenterFunction.html
[Browse code]
trilinear(triangle,point)
trilinear trilinear(triangle t, point M)
Return the trilinear coordinates of 'M' relative to 't'. http://mathworld.wolfram.com/TrilinearCoordinates.html
[Browse code]
trilinear(triangle,real,real,real)
trilinear trilinear(triangle t, real a, real b, real c)
Return the trilinear coordinates relative to 't'. http://mathworld.wolfram.com/TrilinearCoordinates.html
[Browse code]
trilinear(triangle,real,real,real)
point point(trilinear tri)
Return the trilinear coordinates relative to 't'. http://mathworld.wolfram.com/TrilinearCoordinates.html
[Browse code]
unit(point)
vector unit(point M)
Return the unit vector according to the modulus of its coordinate system.
[Browse code]
unit(vector)
vector unit(vector u)
Return the unit vector according to the modulus of its coordinate system.
[Browse code]
vector(coordsys, pair)
vector vector(coordsys R = currentcoordsys, pair v)
Return the vector of 'R' which has the coordinates 'v'.
[Browse code]
vector(point)
vector vector(point M)
Return the vector OM, where O is the origin of the coordinate system of 'M'. Useful to write 'vector(P - M);' instead of '(vector)(P - M)'.
[Browse code]
vline(coordsys)
line vline(coordsys R = currentcoordsys)
Return a vertical line in 'R' passing through the origin of 'R'.
[Browse code]
vprojection(line,bool)
transform vprojection(line l, bool safe = false)
Return the projection on 'l' in parallel of N--S. If 'safe' is 'true' the projected point keeps the same place if 'l' is vertical.
[Browse code] Example 0018
write(explicit segment)
void write(explicit segment s)
Write some informations about 's'.
[Browse code]
write(line)
void write(explicit line l)
Write some informations about 'l'.
[Browse code]
write(trilinear)
void write(trilinear tri)
[Browse code]
xscale(real,point)
transform xscale(real k, point M)
xscale from 'M' relatively to the x - axis of the coordinate system of 'M'.
[Browse code] Example 0029
xscaleO(real)
transform xscaleO(real x)
xscale from the origin and relatively to the current coordinate system.
[Browse code] Example 0006
yscale(real,point)
transform yscale(real k, point M)
yscale from 'M' relatively to the y - axis of the coordinate system of 'M'.
[Browse code]
yscaleO(real)
transform yscaleO(real x)
yscale from the origin and relatively to the current coordinate system.
[Browse code] Example 0006

List of operators

!=(explicit point,explicit point)
bool operator !=(explicit point M, explicit point N)
Provide the test 'M != N' wish return true iff MN >= EPS
[Browse code]
!=(line,line)
bool operator !=(line l1, line l2)
Provide the test 'line != line'.
[Browse code]
*(coordsys,pair)
pair operator *(coordsys R, pair p)
Return the coordinates of 'p' given in the xy - coordinates 'R'. For example, if R = cartesiansystem((1, 2), (1, 0), (0, 1)), R * (0, 0) is (1, 2).
[Browse code]
*(coordsys,path)
path operator *(coordsys R, path g)
Return the reconstructed path applying R * pair to each node, pre and post control point of 'g'.
[Browse code] Example 0027
*(explicit point,explicit pair)
point operator *(explicit point P1, explicit pair p2)
Provide 'point * pair'. The pair 'p2' is supposed to be the coordinates of the point in the coordinates system of 'P1'. 'pair * point' is also defined.
[Browse code]
*(explicit point,explicit point)
point operator *(explicit point P1, explicit point P2)
Provide 'point * point'. The resulted mass is the mass of P2
[Browse code]
*(explicit point,explicit vector)
vector operator *(explicit point M, explicit vector v)
Provide point * vector
[Browse code]
*(inversion,circle)
circle operator *(inversion i, circle c)
Provide inversion * circle.
[Browse code]
*(inversion,line)
circle operator *(inversion i, line l)
Provide inversion * line for lines that don't pass through the inversion center.
[Browse code]
*(inversion,point)
point operator *(inversion i, point P)
Provide inversion * point.
[Browse code]
*(inversion,segment)
arc operator *(inversion i, segment s)
Provide inversion * segment.
[Browse code]
*(inversion,triangle)
path operator *(inversion i, triangle t)
Provide inversion * triangle.
[Browse code]
*(point,line)
line operator *(point M, line l)
Provide point * line. Return the line passing through unit(M) * l.A and unit(M) * l.B.
[Browse code]
*(real,abscissa)
abscissa operator *(real x, explicit abscissa a)
Provide 'real * abscissa'. Return abscissa b so that b.x = x * a.x. *(explicit abscissa, real), /(real, explicit abscissa) and /(explicit abscissa, real) are also defined.
[Browse code]
*(real,ellipse)
ellipse operator *(real x, ellipse el)
Identical but more efficient (rapid) than 'scale(x, el.C) * el'.
[Browse code]
*(real,explicit arc)
arc operator *(real x, explicit arc a)
Provide real * arc. Return the arc subtracting and adding '(x - 1) * degrees(a)/2' to 'a.angle1' and 'a.angle2' respectively.
[Browse code]
*(real,explicit circle)
circle operator *(real x, explicit circle c)
Multiply the radius of 'c'.
[Browse code]
*(real,explicit point)
point operator *(real x, explicit point P)
Multiply the coordinates (not the mass) of 'P' by 'x'.
[Browse code]
*(real,explicit vector)
vector operator *(real x, explicit vector v)
Provide real * vector.
[Browse code]
*(real,line)
line operator *(real x, line l)
Provide x * l. Return the line passing through x * l.A and x * l.B.
[Browse code]
*(real,mass)
mass operator *(real x, explicit mass M)
Provide real * mass. The resulted mass is the mass of 'M' multiplied by 'x' . mass/real, mass + real and mass - real are also defined.
[Browse code]
*(transform t,explicit vector)
vector operator *(transform t, explicit vector v)
Provide transform * vector.
[Browse code]
*(transform,circle)
ellipse operator *(transform t, circle c)
Provide transform * circle. For example, 'circle C = scale(2) * circle' and 'ellipse E = xscale(2) * circle' are valid but 'circle C = xscale(2) * circle' is invalid.
[Browse code] Example 0029 Example 0030
*(transform,conic)
conic operator *(transform t, conic co)
Provide transform * conic.
[Browse code]
*(transform,coordsys)
coordsys operator *(transform t,coordsys R)
Provide transform * coordsys. Note that shiftless(t) is applied to R.i and R.j.
[Browse code]
*(transform,ellipse)
ellipse operator *(transform t, ellipse el)
Provide transform * ellipse.
[Browse code] Example 0031
*(transform,explicit arc)
arc operator *(transform t, explicit arc a)
Provide transform * arc.
[Browse code] Example 0080 Example 0081
*(transform,explicit point)
point operator *(transform t, explicit point P)
Provide 'transform * point'. Note that the transforms scale, xscale, yscale and rotate are carried out relatively the default coordinate system 'defaultcoordsys' which is not desired for point defined in an other coordinate system. On can use scale(real, point), xscale(real, point), yscale(real, point), rotate(real, point), scaleO(real), xscaleO(real), yscaleO(real) and rotateO(real) (described further) to change the coordinate system of reference.
[Browse code]
*(transform,hyperbola)
hyperbola operator *(transform t, hyperbola h)
Provide transform * hyperbola.
[Browse code]
*(transform,line)
line operator *(transform t, line l)
Provide transform * line
[Browse code]
*(transform,mass)
mass operator *(transform t, mass M)
Provide transform * mass.
[Browse code]
*(transform,parabola)
parabola operator *(transform t, parabola p)
Provide transform * parabola.
[Browse code]
*(transform,triangle)
triangle operator *(transform T, triangle t)
Provide transform * triangle.
[Browse code]
+(conic,explicit pair)
conic operator +(conic c, explicit pair m)
[Browse code]
+(conic,explicit point)
conic operator +(conic c, explicit point M)
[Browse code]
+(conic,vector)
conic operator +(conic c, vector v)
[Browse code]
+(explicit arc,point)
arc operator +(explicit arc a, point M)
Provide arc + point. Return shifted arc. 'operator +(explicit arc, point)', 'operator +(explicit arc, vector)' and 'operator -(explicit arc, vector)' are also defined.
[Browse code]
+(explicit circle,explicit point)
circle operator +(explicit circle c, explicit point M)
Translation of 'c'.
[Browse code]
+(explicit circle,pair)
circle operator +(explicit circle c, pair m)
Translation of 'c'. 'm' represent coordinates in the coordinate system where 'c' is defined.
[Browse code]
+(explicit circle,vector)
circle operator +(explicit circle c, vector m)
Translation of 'c'.
[Browse code]
+(explicit pair,explicit vector)
point operator +(explicit pair m, explicit vector v)
The pair 'm' is supposed to be the coordinates of a point in the current coordinates system 'currentcoordsys'. Return this point shifted by the vector 'v'.
[Browse code]
+(explicit point,explicit pair)
point operator +(explicit point P1, explicit pair p2)
Provide 'point + pair'. The pair 'p2' is supposed to be coordinates relatively to the coordinates system of 'P1'. The mass is not changed.
[Browse code]
+(explicit point,explicit point)
point operator +(explicit point P1, explicit point P2)
Provide 'point + point'. If the two points haven't the same coordinate system, a warning is sent and the returned point has the default coordinate system 'defaultcoordsys'. The masses are added.
[Browse code]
+(explicit point,explicit vector)
point operator +(point M, explicit vector v)
Return 'M' shifted by 'v'.
[Browse code]
+(explicit vector,explicit vector)
vector operator +(explicit vector v1, explicit vector v2)
Provide vector + vector. If the two vector haven't the same coordinate system, the returned vector is relative to the default coordinate system (without warning).
[Browse code]
+(line,point)
line operator +(line l, vector u)
Provide line + vector (and so line + point). Return the line 'l' shifted by 'u'.
[Browse code]
+(mass,mass)
mass operator +(mass M1, mass M2)
Provide mass + mass. mass - mass is also defined.
[Browse code]
+(real,explicit abscissa)
abscissa operator +(real x, explicit abscissa a)
Provide 'real + abscissa'. Return abscissa b so that b.x = a.x + x. +(explicit abscissa, real), -(real, explicit abscissa) and -(explicit abscissa, real) are also defined.
[Browse code]
-(conic,explicit pair)
conic operator -(conic c, explicit pair m)
[Browse code]
-(conic,explicit point)
conic operator -(conic c, explicit point M)
[Browse code]
-(conic,vector)
conic operator -(conic c, vector v)
[Browse code]
-(explicit abscissa a)
abscissa operator -(explicit abscissa a)
Return the abscissa b so that b.x = -a.x.
[Browse code]
-(explicit circle,explicit point)
circle operator -(explicit circle c, explicit point M)
Translation of 'c'.
[Browse code]
-(explicit circle,pair)
circle operator -(explicit circle c, pair m)
Translation of 'c'. 'm' represent coordinates in the coordinate system where 'c' is defined.
[Browse code]
-(explicit circle,vector)
circle operator -(explicit circle c, vector m)
Translation of 'c'.
[Browse code]
-(explicit pair,explicit vector)
point operator -(explicit pair m, explicit vector v)
The pair 'm' is supposed to be the coordinates of a point in the current coordinates system 'currentcoordsys'. Return this point shifted by the vector '-v'.
[Browse code]
-(explicit point)
point operator -(explicit point P)
-P. The mass is inchanged.
[Browse code]
-(explicit point,explicit pair)
point operator -(explicit point P1, explicit pair p2)
Provide 'point - pair'. The pair 'p2' is supposed to be coordinates relatively to the coordinates system of 'P1'.
[Browse code]
-(explicit point,explicit point)
point operator -(explicit point P1, explicit point P2)
Provide 'point - point'.
[Browse code]
-(explicit point,explicit vector)
point operator -(point M, explicit vector v)
Return 'M' shifted by '-v'.
[Browse code]
-(explicit vector)
vector operator -(explicit vector v)
Provide -v.
[Browse code]
-(explicit vector, explicit vector)
vector operator -(explicit vector v1, explicit vector v2)
Provide vector - vector. If the two vector haven't the same coordinate system, the returned vector is relative to the default coordinate system (without warning).
[Browse code]
-(line,vector)
line operator -(line l, vector u)
Provide line - vector (and so line - point). Return the line 'l' shifted by '-u'.
[Browse code]
/(ellipse,real)
ellipse operator /(ellipse el, real x)
Identical but more efficient (rapid) than 'scale(1/x, el.C) * el'.
[Browse code] Example 0031
/(explicit circle,real)
circle operator /(explicit circle c, real x)
Divide the radius of 'c'
[Browse code] Example 0030
/(explicit point,real)
point operator /(explicit point P, real x)
Divide the coordinates (not the mass) of 'P' by 'x'.
[Browse code]
/(explicit vector,real)
vector operator /(explicit vector v, real x)
Provide vector/real
[Browse code]
/(line,real)
line operator /(line l, real x)
Provide l/x. Return the line passing through l.A/x and l.B/x.
[Browse code]
/(pair,coordsys)
pair operator /(pair p, coordsys R)
Return the xy - coordinates of 'p' relatively to the coordinate system 'R'. For example, if R = cartesiansystem((1, 2), (1, 0), (0, 1)), (0, 0)/R is (-1, -2).
[Browse code] Example 0004
/(real,explicit arc)
arc operator /(explicit arc a, real x)
Provide arc/real. Return the arc subtracting and adding '(1/x - 1) * degrees(a)/2' to 'a.angle1' and 'a.angle2' respectively.
[Browse code]
/(real,explicit point)
point operator /(real x, explicit point P)
[Browse code]
==(coordsys,coordsys)
bool operator ==(coordsys c1, coordsys c2)
Return true iff the coordinate system have the same origin and units vector.
[Browse code]
==(explicit point,explicit point)
bool operator ==(explicit point M, explicit point N)
Provide the test 'M == N' wish returns true iff MN < EPS
[Browse code]
==(explicit vector,explicit vector)
bool operator ==(explicit vector u, explicit vector v)
Return true iff |u - v|<EPS.
[Browse code]
==(line,line)
bool operator ==(line l1, line l2)
Provide the test 'line == line'.
[Browse code]
@(point,arc)
bool operator @(point M, arc a)
Return true iff 'M' is on the arc 'a'.
[Browse code]
@(point,conic)
bool operator @(point M, conic co)
Return true iff 'M' on 'co'.
[Browse code]
@(point,explicit circle)
bool operator @(point M, explicit circle c)
Return true iff 'M' is on the circle 'c'.
[Browse code]
@(point,line)
bool operator @(point m, line l)
Provide the test 'point @ line'. Return true iff 'm' is on the 'l'.
[Browse code] Example 0026
^(point,explicit circle)
real operator ^(point M, explicit circle c)
The power of 'M' with respect to the circle 'c'
[Browse code]
^^(line,line)
line[] operator ^^(line l1, line l2)
Provide line^^line. Return the line array {l1, l2}.
[Browse code]
^^(line,line[])
line[] operator ^^(line l1, line[] l2)
Provide line^^line[]. Return the line array {l1, l2[0], l2[1]...}. line[]^^line is also defined.
[Browse code]
^^(line,line[])
line[] operator ^^(line l1[], line[] l2)
Provide line[]^^line[]. Return the line array {l1[0], l1[1], ..., l2[0], l2[1], ...}.
[Browse code]
cast(circle)
ellipse operator cast(circle c)
[Browse code]
cast(circle)
conic operator cast(circle c)
Circle to conic section.
[Browse code]
cast(circle)
path operator cast(circle c)
Cast circle to path.
[Browse code]
cast(conic)
ellipse operator cast(conic co)
Cast a conic to an ellipse (can be a circle).
[Browse code]
cast(conic)
parabola operator cast(conic co)
Cast a conic to a parabola.
[Browse code]
cast(conic)
hyperbola operator cast(conic co)
Cast a conic section to an hyperbola.
[Browse code]
cast(conic)
circle operator cast(conic c)
Conic section to circle.
[Browse code]
cast(conic)
path operator cast(conic co)
Cast conic section to path.
[Browse code]
cast(ellipse)
circle operator cast(ellipse el)
[Browse code]
cast(ellipse)
conic operator cast(ellipse el)
Ellipse to conic section.
[Browse code]
cast(ellipse)
path operator cast(ellipse el)
Cast ellipse to path.
[Browse code]
cast(explicit arc)
path operator cast(explicit arc a)
Cast arc to path.
[Browse code]
cast(explicit arc)
guide operator cast(explicit arc a)
Cast arc to guide.
[Browse code]
cast(explicit point)
vector operator cast(explicit point v)
A point can be interpreted like a vector using the code '(vector)a_point'.
[Browse code]
cast(explicit position)
abscissa operator cast(explicit position position)
Cast position to abscissa. If 'position' is relative, the abscissa is relative else it's a curvilinear abscissa.
[Browse code]
cast(explicit vector)
pair operator cast(explicit vector v)
Cast vector to pair (the coordinates of 'v' in the default coordinate system).
[Browse code]
cast(hyperbola)
conic operator cast(hyperbola h)
Hyperbola to conic section.
[Browse code]
cast(hyperbola)
path operator cast(hyperbola h)
Cast hyperbola to path. If possible, the returned path is restricted to the actual bounding box of the current picture unless the variables 'h.bmin' and 'h.bmax' are set; in this case the bounding box of box(h.bmin, h.bmax) is used instead. Only the branch on the side of 'h.F1' is considered.
[Browse code]
cast(line)
segment operator cast(line l)
Cast line 'l' to segment [l.A l.B].
[Browse code]
cast(mass)
point operator cast(mass m)
Cast mass point to point.
[Browse code]
cast(mass)
path operator cast(mass M){return M.M;}
Cast mass point to path.
[Browse code]
cast(mass)
guide operator cast(mass M){return M.M;}
Cast mass to guide.
[Browse code]
cast(mass[])
point[] operator cast(mass[] m)
Cast mass[] to point[].
[Browse code]
cast(pair)
point operator cast(pair p)
Cast pair to point relatively to the current coordinate system 'currentcoordsys'.
[Browse code]
cast(pair)
vector operator cast(pair v)
Cast pair to vector relatively to the current coordinate system 'currentcoordsys'.
[Browse code]
cast(pair)
mass operator cast(pair m){return mass((point)m, 1);}
Cast pair to mass point.
[Browse code]
cast(pair[])
point[] operator cast(pair[] p)
Cast pair[] to point[] relatively to the current coordinate system 'currentcoordsys'.
[Browse code]
cast(parabola)
conic operator cast(parabola p)
Cast a parabola to a conic section.
[Browse code]
cast(parabola)
path operator cast(parabola p)
Cast parabola to path. If possible, the returned path is restricted to the actual bounding box of the current picture if the variables 'p.bmin' and 'p.bmax' are not set else the bounding box of box(p.bmin, p.bmax) is used instead.
[Browse code]
cast(point)
pair operator cast(point P)
Cast point to pair.
[Browse code]
cast(point)
guide operator cast(point p)
Cast point to guide.
[Browse code]
cast(point)
path operator cast(point p)
Cast point to path.
[Browse code]
cast(point)
mass operator cast(point M)
Cast point to mass point.
[Browse code]
cast(point[])
pair[] operator cast(point[] P)
Cast point[] to pair[].
[Browse code]
cast(point[])
mass[] operator cast(point[] P)
Cast point[] to mass[].
[Browse code]
cast(real)
abscissa operator cast(real x)
Cast real to abscissa, precisely 'nodabscissa'.
[Browse code]
cast(segment)
line operator cast(segment s)
A segment is casted to a "finite line".
[Browse code]
cast(side)
line operator cast(side side)
Cast side to (infinite) line. Most routine with line parameters works with side parameters. One can use the code 'segment(a_side)' to obtain a line segment.
[Browse code]
cast(trilinear)
point operator cast(trilinear tri)
Cast trilinear to point. One may use the routine 'point(trilinear)' to force the casting.
[Browse code]
cast(vector)
point operator cast(vector v)
Cast vector 'v' to point 'M' so that OM = v.
[Browse code]
cast(vector)
align operator cast(vector v)
Cast vector to align.
[Browse code]
cast(vertex)
point operator cast(vertex V)
Cast vertex to point. Most routine with point parameters works with vertex parameters.
[Browse code]

Dernière modification/Last modified: Tue Jun 28 00:34:13 CEST 2011
Philippe Ivaldi

Valide XHTML