Nine-Point Circle

Author

Eric W. Weisstein
January 26, 2005

This notebook downloaded from http://mathworld.wolfram.com/notebooks/PlaneGeometry/Nine-PointCircle.nb.

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

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

Points on Nine-Point Circle

V5

Redo this figure by combining PlotLabels

t=Triangle[{{0.,0.},{1.,1.},{2.,-.5}}];
v=Vertices[t];
mid=Coordinates/@Midpoints[t];
eul=Coordinates/@EulerPoints[t];
alt=Coordinates/@Feet[Altitudes[t]];
h=Coordinates[Orthocenter[t]];
pts={
v[[1]],"A",v[[2]],"B",v[[3]],"C",
mid[[1]],"(Subscript[M, A])",mid[[2]],"(Subscript[M, B])",mid[[3]],"(Subscript[M, C])",
};
pts1={
alt[[1]],"(Subscript[H, A])",alt[[2]],"(Subscript[H, B])",alt[[3]],"(Subscript[H, C])",
Orthocenter[t],"H"
};
pts2={eul[[1]],"(Subscript[E, A])",eul[[2]],"(Subscript[E, B])",eul[[3]],"(Subscript[E, C])"};
pts3={NinePointCenter,"N"};
Show[Graphics[{
t,
{
Blue,
NinePointCircle[t],
PointLabels[t,pts3,.03,{.06,.07}]
},
{
DarkGreen,
Altitudes[t],
PointLabels[t,pts1,.03,{.06,.07}],
MapIndexed[
EqualSideTicksAboutMidpoint[Line[{#1,h}],#2[[1]],.025,.015]&,v
]
},
PointLabels[t,pts,.03,{.06,.07}],
{
Red,
PointLabels[t,pts2,.03,{.06,.07}]
}
}],  AspectRatio->Automatic]

V6

Needs["Graphics`Colors`"]//Quiet

Module[{t=Triangle[{{0.,0.},{2.,-.5},{1.,1.}}],v},
v=Vertices[t];
Graphics[{
t,
{
Blue,
NinePointCircle[t],
PointLabels[{{"N",NinePointCenter[t]}},PointSize->.025,LabelOffset->{.08,-.08}]
},
{
DarkGreen,
Altitudes[t],
PointLabels[
Append[Transpose[{
Subscript["H",#]&/@{"A","B","C"},
VertexPoints[OrthicTriangle[t]],
{LabelOffset->{.09,.07},LabelOffset->{-.1,.05},LabelOffset->{-.02,-.1}}}
],
{"H",Orthocenter[t],LabelOffset->{.12,-.01}}
],PointSize->.025],
MapIndexed[
EqualSideTicksAboutMidpoint[Line[{#1,Coordinates[Orthocenter[t]]}],#2[[1]],.03,.03]&,v
]
},
PointLabels[
Join[
Transpose[{{"A","B","C"},VertexPoints[t],{LabelOffset->-.08,LabelOffset->{.08,-.1},LabelOffset->{.02,.1}}}],
Transpose[{Subscript["M",#]&/@{"A","B","C"},VertexPoints[MedialTriangle[t]],{LabelOffset->{.13,.06},LabelOffset->{-.11,.03},LabelOffset->{.01,-.1}}}]
],PointSize->.025],
Red,
PointLabels[
Transpose[{
Subscript["E",#]&/@{"A","B","C"},
VertexPoints[EulerTriangle[t]],
{LabelOffset->{.12,-.03},LabelOffset->{-.1,-.02},LabelOffset->{-.07,.07}}
}],PointSize->.025]
}
]
]

Check of Concyclicity

(rs=Together//@(ToSidelengths[Distance[Trilinears[NinePointCenter],#]&/@Flatten[TrilinearVertexMatrix/@{OrthicTriangle,MedialTriangle,EulerTriangle},1]/.Cos[x_]:>TrigExpand[Cos[x]]]/.Sqrt[x_]:>Simplify[Sqrt[x],TriangleQ[]]))//Timing

Equal@@rs

Circumradius[]/2

Feuerbach point = Contact point of incircle and nine-point circle

tri=Triangle[{{0.,0.},{1.,1.},{2.,-.5}}];
pts={FeuerbachPoint[tri],F};
v=Vertices[tri];
verts={v[[1]],A,v[[2]],B,v[[3]],C};
Show[Graphics[{
tri,
{
Red,
NinePointCircle[tri]
},
{
Blue,
Incircle[tri]
},
Altitudes[tri],
PointLabels[tri,pts,.03],
PointLabels[tri,verts,.03],
PerpSquare[#,.06,3]&/@Transpose[{Sides[tri],Altitudes[tri]}]
}],AspectRatio->Automatic,PlotRange->All]

Equation

p=FullSimplify[DistanceTrilinears[TrigExpand[Trilinears[NinePointCenter]]],TriangleQ[]]

FullSimplify[Together//@CircleFunction[DistanceTrilinears[CircleEquation[p,Circumradius[]/2]]],TriangleQ[]]

LawOfCosines[%]

FullSimplify[CircleEquation[NinePointCircle]]

Circle Function

CircleFunction[NinePointCircle]

IncidentCenters[Take[KimberlingCenters,10],CyclicTrilinears[CircleFunction[NinePointCircle]]]//Timing

CenterName[X[3]]

Center

Center[NinePointCircle]

IncidentCenters[KimberlingCenters,CircleCenter[NinePointCircle]]

CenterName[X[5]]

Radius

FullSimplify[Together//@DistanceTrilinears[CircleRadius[NinePointCircle]],TriangleQ[]]

Circumradius[]/2

Perspector

persp=Symmetrize[ToSidelengths[Perspector[NinePointCircle]]]

IncidentCenters[KimberlingCenters,persp]//Timing

Incident Points

(ctrs=IncidentCenters[KimberlingCenters,NinePointCircle])//Timing

First/@ctrs

Length[ctrs]

{#,CenterName[#]}&/@ctrs//TableForm

Feuerbach Triangle

t=Triangle[{{0,0},{1,0},{.2,.7}}];
Show[Graphics[{
t,
{Dashing[{.01}],Sides[t,2]},
{Red,FeuerbachTriangle[t]},
{Red,NinePointCircle[t]},
{Blue,Excircles[t]},
{Purple,Incircle[t]},
PointLabels[Join[
Transpose[{VertexPoints[t],{"A","B","C"}}],
Append[#,Blue]&/@Transpose[{VertexPoints[ExcentralTriangle[t]],{"(Subscript[J, A])","(Subscript[J, B])","(Subscript[J, C])"}}],
Append[#,Red]&/@Transpose[{VertexPoints[FeuerbachTriangle[t]],{"(Subscript[F, A])","(Subscript[F, B])","(Subscript[F, C])"}}],
{
{FeuerbachPoint[t],"F",Purple},
{Incenter[t],"I",Purple}
}
],{PointSize[.01],LabelOffset->.06}
]
}],AspectRatio->Automatic
]

Quadrilateral

v={{0,0},{1,.05},{1,.6},{.1,.8}};

Show[Graphics[{NinePointCircles[v],CompleteQuadrilateral[v],
PointLabels[Flatten[Transpose[{v,{(Subscript[A, 1]),(Subscript[A, 2]),(Subscript[A, 3]),(Subscript[A, 4])}}],1],.03,.05]},AspectRatio->Automatic]]

I, (Subscript[J, A]),(Subscript[J, B]), (Subscript[J, C])

Circumcircle[t]

NinePointCircle[ExcentralTriangle[t]]

NinePointCircle/@(Triangle[Append[#,Coordinates[Incenter[t]]]]&/@Partition[Vertices[ExcentralTriangle[t]],2,1,1])

Power Sum

Simplify[Together//@DistanceTrilinears[Plus@@((((Distance[Trilinears[NinePointCenter],#])^2)-(Circumradius[]/2)^2)&/@TrilinearVertexMatrix[ReferenceTriangle])/.Cos[x_]:>TrigExpand[Cos[x]]],TriangleQ[]]

Distance Sum

Factor[Simplify[Together//@DistanceTrilinears[Plus@@(((Distance[Trilinears[NinePointCenter],#])^2)&/@Append[TrilinearVertexMatrix[ReferenceTriangle],Trilinears[Orthocenter]])/.Cos[x_]:>TrigExpand[Cos[x]]],TriangleQ[]]]

3Circumradius[]^2

Orthogonality

List

t=Triangle[Table[Random[Real,{0,1},20],{3},{2}]];

l={};
With[{circ=NinePointCircle},
circs=DeleteCases[Circles,circ];
Do[
Print[{i,circs[[i]],expr=TimeConstrained[OrthogonalQ[circ[t],circs[[i]][t]],10]//Timing;
If[Last[expr]=!=False,AppendTo[l,{circs[[i]],Last[expr]}]];expr}],
{i,Length[circs]}
]]

First/@Select[l,Last[#]===True&]

First/@Select[l,Last[#]===$Aborted&]

Check

Together//@DistanceTrilinears[First[OrthogonalQ[NinePointCircle,StevanovicCircle]]]//Timing

Graphic

t=Triangle[Table[Random[Real,{0,1},20],{3},{2}]];

circs={NinePointCircle,StevanovicCircle};
centers={"Ni","(Subscript[X, 650])"};
colors={Red,Green};

Show[Graphics[{
Transpose[{colors,Through[circs[t]]}],
PointLabels[Join[
Transpose[{CircleCenter[#[t]]&/@circs,centers,colors}]
],LabelOffset->.2
]
}],AspectRatio->Automatic]

Tangent Circles

Simplify[Together//@ToSidelengths[TangentQ[Incircle,NinePointCircle]/.Cos[x_]:>TrigExpand[Cos[x]]],TriangleQ[]]//Timing

Simplify[Together//@ToSidelengths[TangentQ[MosesCircle,NinePointCircle]/.Cos[x_]:>TrigExpand[Cos[x]]],TriangleQ[]]//Timing

Circumcircle of medial triangle

eqn=Numerator[Symmetrize[Factor[TrilinearEquation@@TrilinearVertexMatrix[MedialTriangle]]]]

ctr=Symmetrize/@Center[eqn]

IncidentCenters[KimberlingCenters,ctr]//Timing

CenterName[X[5]]

r=Together//@ExpandAll[Together//@CircleRadius[eqn]]

Factor//@Simplify[r,TriangleQ[]]

CircleRadius[NinePointCircle]

Circumcircle of orthic triangle

eqn=Numerator[Symmetrize[Factor[ToSidelengths[TrilinearEquation@@TrilinearVertexMatrix[OrthicTriangle]]]]]

ctr=Symmetrize/@Center[eqn]

IncidentCenters[{X[5]},ctr]//Timing

CenterName[X[5]]

r=Together//@ExpandAll[Together//@CircleRadius[eqn]]

Factor//@Simplify[r,TriangleQ[]]

CircleRadius[NinePointCircle]