Cyclic Quadrilateral

Eric W. Weisstein
February 15, 2002

This notebook downloaded from http://mathworld.wolfram.com/notebooks/PlaneGeometry/CyclicQuadrilateral.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/CyclicQuadrilateral.html.

©2005 Wolfram Research, Inc. except for portions noted otherwise

Initialization

<<PlaneGeometry`;

Old Code (what is this?!)

s[sides_List]:=Plus @@ sides/2
CyclicQuadrilateralA[sides_List]:=Module[{s0=s[sides]},
  Sqrt[Product[s0-sides[[i]],{i,4}]]
]
CyclicQuadrilateralR[sides_List]:=Module[
  {s0=s[sides],a=sides[[1]],b=sides[[2]],c=sides[[3]],d=sides[[4]]},
  Sqrt[(a c+b d)(a d+b c)(a b+c d)/(s0-a)/(s0-b)/(s0-c)/(s0-d)]/4
]
CyclicQuadrilateralP[sides_List]:=Module[
  {a=sides[[1]],b=sides[[2]],c=sides[[3]],d=sides[[4]]},
  Sqrt[(a b+c d)(a c+b d)/(a d+b c)]
]
CyclicQuadrilateralQ[sides_List]:=Module[
  {a=sides[[1]],b=sides[[2]],c=sides[[3]],d=sides[[4]]},
  Sqrt[(a c+b d)(a d+b c)/(a b+c d)]
]
CyclicQuadrilateral[sides_List]:={CyclicQuadrilateralP[sides],
  CyclicQuadrilateralQ[sides],CyclicQuadrilateralR[sides],CyclicQuadrilateralA[sides]}

CyclicQuadrilateral[{25,33,39,65}]

Diagram

v=Take[CyclicQuadrilateral[{0,.4,2.,4.}][[1,1]],4];

d[i_][tri_]:=DiagonalMidpoints[tri][[i]];
m[i_][tri_]:=Midpoints[tri][[i]];
dd=LineLineIntersection@@(Diagonals[v] /. Line->Identity);
alt={d[1][v][[1]],d[2][v][[1]],dd};
vert[i_][tri_]:=tri[[i]];
pts={Centroid,"G",d[1],"(Subscript[M, AC])",d[2],"(Subscript[M, BD])",
	Circumcenter,"O",	Anticenter,"T",dd,"P",
	vert[1],"A",vert[2],"B",vert[3],"C",vert[4],"D"};

Show[Graphics[{
	Quadrilateral[v],
	Circle[{0,0},1],
	Line[{Circumcenter[v],Anticenter[v]} /. Point->Identity],
	PointLabels[v,pts,.03,{.04,.06}],
	Altitudes[alt],Triangle[alt],
	{Dashing[{.03,.03}],Diagonals[v]},
			{Dashing[{.01,.01}],Maltitudes[v]}
}],AspectRatio->Automatic]

a={1,1.9,3.8,5.5};
Show[Graphics[{
		Circle[{0,0},1],
		CyclicQuadrilateral[a],
		{PointSize[.02],CyclicQuadrilateralFn[a,Incenter]},
		CyclicQuadrilateralFn[a,Incircle],
			Quadrilateral[Flatten[CyclicQuadrilateralFn[a,Incenter],1,Point]],
			{PointSize[.02],CyclicQuadrilateralArcMidpoints[a]},
			CyclicQuadrilateralArcMidpointDiagonals[a]
	}],AspectRatio->Automatic]

Show[Graphics[{
		Circle[{0,0},1],
		CyclicQuadrilateral[a],
		{PointSize[.02],CyclicQuadrilateralFn[a,Incenter],
			CyclicQuadrilateralFn[a,Excenters]},
		CyclicQuadrilateralFn[a,Incircle]
	}],AspectRatio->Automatic]

cent=CyclicQuadrilateralFn[a,Centroid];
nine=CyclicQuadrilateralFn[a,NinePointCenter];
ortho=CyclicQuadrilateralFn[a,Orthocenter];
Show[Graphics[{
		Circle[{0,0},1],
		CyclicQuadrilateral[a],
			{PointSize[.02],cent},Quadrilateral[Flatten[cent,1,Point]],
			{PointSize[.02],nine},Quadrilateral[Flatten[nine,1,Point]],
			{PointSize[.02],ortho},Quadrilateral[Flatten[ortho,1,Point]]
	} /. Point->point],AspectRatio->Automatic]

Distance from O to side is half length of opposite side

An application of\href{Brahmagupta's theorem} gives the pretty result that, for a cyclic quadrilateral with perpendicular diagonals, the distance from the \href{circumcenter} $O$ to a side is half the length of the opposite side.

ang={.2,1.4,3.4};
q=CyclicQuadrilateralWithPerpendicularDiagonals[ang];
v=Vertices[q];
m=Maltitudes[q];
mid=Midpoints[q];
o=Circumcenter[q];
pts={
v[[1]],A,v[[2]],B,v[[3]],C,v[[4]],D,
Anticenter[q],T,Circumcenter[q],O,
mid[[1]],(Subscript[M, AB]),mid[[2]],(Subscript[M, BC]),mid[[3]],(Subscript[M, CD]),mid[[4]],(Subscript[M, AD])
};
Show[Graphics[{
q,
PointLabels[q,pts,.03],
Circle[{0,0},1],
PerpSquare[Diagonals[q],.09,2],
Diagonals[q],
{
Dashing[{.02,.02}],
PerpendicularLine[o,Line[#]]&/@Partition[v,2,1,1]
}
}],AspectRatio->Automatic,PlotRange->All]

Brahmagupta's Theorem