I found $4$ situations where a median, a bisector and an altitude form an equilateral triangle. I believe this listing to be exhaustive. Note that half of them use external angle bisectors, and most of them have at least some part of the red triangle outside the blue, so not just a decomposition of the blue one. All of them reuse one original vertex. I'll leave it to you to decide which of these you consider solutions. Click on figures for a bigger view.
Edge length ratio $1:\sqrt{13}:4$
Angles ca. $13.9°, 60°, 106.1°$
![](https://i.stack.imgur.com/C3u0f.png)
Edge length ratio $\sqrt3-1:\sqrt2:2 = 1:\sqrt{\sqrt3+2}:\sqrt3+1$
Angles $15°, 30°, 135°$
![](https://i.stack.imgur.com/6QeLe.png)
Edge length ratio $\sqrt2:2:\sqrt3+1 = 1:\sqrt2:\sqrt{\sqrt3+2}$
Angles $30°, 45°, 105°$
![](https://i.stack.imgur.com/6VSng.png)
Edge length ratio $1:2:\sqrt7$
Angles ca. $19.1°, 40.9°, 120°$
![](https://i.stack.imgur.com/EtELf.png)
I found this via a considerable bit of Sage computation. The core idea is using homogeneous coordinates, and parametrizing the triangle as a set of three tangents to the unit circle. That way, the angular bisector can be expressed easily by connecting one vertex to the center of the circle, which is either the incircle or some excircle. Two tangents to the unit circle are parametrized using the tangent half-angle formula, while the third is fixed to the one tangent the formula won't cover. If you care about the details, here they are:
import itertools
import string
PR.<t,u> = QQ[]
def simpl(v):
if not v:
return v
g = gcd(v.list())
return v.parent()(v / g)
def cp(a, b):
return simpl(a.cross_product(b))
def mp(a, b):
return simpl(b[-1]*a + a[-1]*b)
AB = vector([1-t^2, 2*t, 1+t^2])
AC = AB(t=u)
BC = vector([-1, 0, 1])
A = cp(AB, AC)
B = cp(AB, BC)
C = cp(AC, BC)
O = vector([0, 0, 1])
ortho = diagonal_matrix([1, 1, 0])
ABC = matrix([A, B, C]).det()
medians = [cp(A, mp(B, C)), cp(B, mp(C, A)), cp(C, mp(A, B))]
bisectors = [cp(A, O), cp(B, O), cp(C, O)]
altitudes = [cp(A, ortho*BC), cp(B, ortho*AC), cp(C, ortho*AB)]
triplets = [_ for _ in itertools.product(medians, bisectors, altitudes) if matrix(_).det()]
def dehom(v):
return v[:-1]/v[-1]
def distsq(a, b):
d = a - b
return d*d
def equilat(ab, bc, ac):
a = cp(ab, ac)
b = cp(ab, bc)
c = cp(ac, bc)
abc = matrix([a, b, c]).det()
da = dehom(a)
db = dehom(b)
dc = dehom(c)
dab = distsq(da, db)
dbc = distsq(db, dc)
dac = distsq(da, dc)
eq1 = (dab - dbc).numerator()
eq2 = (dab - dac).numerator()
eq3 = (dac - dbc).numerator()
g = gcd([eq1, eq2, eq3])
if g == 0:
return
if g != 1:
for f, p in g.factor(False):
i = PR.ideal([f])
assert abc in i # Equilateral triangle would become degenerate
i = PR.ideal([eq1 // g, eq2 // g, eq3 // g])
dim = i.dimension()
assert dim == 0 # Finite set of solutions
for s in i.variety(AA):
if not abc(t=s[t], u=s[u]):
# Equilateral triangle would be degenerate
continue
if not ABC(t=s[t], u=s[u]):
# Original triangle would be degenerate
continue
names = dict((str(k), v) for k, v in s.items())
pts1 = [A, B, C, a, b, c]
pts2 = [_(**names) for _ in pts1]
if not all(_[-1] for _ in pts2):
# Exclude points at infinity
continue
pts3 = [dehom(_) for _ in pts2]
assert dab(**names) == dbc(**names) == dac(**names)
A3, B3, C3 = pts3[:3]
pts4 = pts3[3:]
dAB = (A3 - B3).norm()
dAC = (A3 - C3).norm()
dBC = (B3 - C3).norm()
if dAB >= dAC >= dBC:
yield transform(A3, B3, C3, pts4)
if dAC >= dAB >= dBC:
yield transform(A3, C3, B3, pts4)
if dAB >= dBC >= dAC:
yield transform(B3, A3, C3, pts4)
if dBC >= dAC >= dAB:
yield transform(C3, B3, A3, pts4)
if dBC >= dAB >= dAC:
yield transform(B3, C3, A3, pts4)
if dAC >= dBC >= dAB:
yield transform(C3, A3, B3, pts4)
def transform(A, B, C, abc):
B2x, B2y = (B - A).list()
M1 = matrix([[B2x, -B2y], [B2y, B2x]])
M2 = M1.inverse()
R = A.parent().base_ring()
assert M2 * (B - A) == vector([1, 0])
C2 = M2 * (C - A)
if C2[1] < 0:
M2 = diagonal_matrix([1, -1])*M2
C2 = M2 * (C - A)
abc2 = sorted(M2 * (_ - A) for _ in abc)
pts = [vector(R, [0,0]), vector(R, [1,0]), C2] + abc2
for p in pts:
p.set_immutable()
return tuple(pts)
unique = sorted(set(j for i in triplets for j in equilat(*i)))
def svg(f, A, B, C, a, b, c):
f.write("""<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="1000px" height="400px" viewBox="-0.5, -0.7, 2.0, 0.8"
stroke-width="0.008"
version="1.1" xmlns="http://www.w3.org/2000/svg">
""")
dAB = (A - B).norm()
dAC = (A - C).norm()
dBC = (B - C).norm()
l1 = dAC / dBC
l2 = dAB / dBC
f.write("""<descr>
Answer to https://math.stackexchange.com/q/3028611/35416
with edge length ratio 1 : {} : {}
</descr>
""".format(l1.radical_expression(), l2.radical_expression()))
f.write('<g stroke="blue">\n')
for p1, p2 in [(A, B), (B, C), (C, A)]:
p3 = list(map(float, p1 + 10*(p1 - p2)))
p4 = list(map(float, p2 + 10*(p2 - p1)))
f.write('<line x1="{}" y1="{}" x2="{}" y2="{}"/>\n'.format(*(p3+p4)))
f.write('</g>\n')
f.write('<g stroke="red">\n')
for p1, p2 in [(a, b), (b, c), (c, a)]:
p3 = list(map(float, p1 + 10*(p1 - p2)))
p4 = list(map(float, p2 + 10*(p2 - p1)))
f.write('<line x1="{}" y1="{}" x2="{}" y2="{}"/>\n'.format(*(p3+p4)))
f.write('</g>\n')
f.write('<g stroke="black" fill="blue">\n')
for p1 in [A, B, C]:
p2 = list(map(float, p1))
f.write('<circle cx="{}" cy="{}" r="0.025"/>\n'.format(*(p2)))
f.write('</g>\n')
f.write('<g stroke="black" fill="red">\n')
for p1 in [a, b, c]:
p2 = list(map(float, p1))
f.write('<circle cx="{}" cy="{}" r="0.025"/>\n'.format(*(p2)))
f.write('</g>\n')
f.write('</svg>\n')
flip = diagonal_matrix([1, -1])
for i, s in enumerate(unique):
with open('MX3028611{}.svg'.format(string.letters[i]), 'w') as f:
svg(f, *(flip*_ for _ in s))
You could also consider a slightly different question: Draw all the medians, internal and external bisectors and altitudes for a total of 12 red lines. Can you now find an equilateral triangle with only red edges? This yields a family of situations where you have a $60°$ angle with an angle bisector dividing it, and the heights through the opposite vertices.
![](https://i.stack.imgur.com/fbmHZ.png)
This family also includes situations where the bisector becomes the external bisector of a $120°$ vertex, thus still dividing a $60°$ angle. You can obtain one from the other by moving the edge opposite the $60°$ angle in any way you like.
Apart from this one-parameter family there are six more sporadic solutions:
- Edge length ratio $1:1:1$
Angles $60°, 60°, 60°$
![](https://i.stack.imgur.com/X0gnb.png)
Edge length ratio $1:2:\sqrt7$ (which we already saw above)
Angles ca. $19.1°, 40.9°, 120°$
and
![](https://i.stack.imgur.com/mu4mS.png)
Edge length ratio $2 : \sqrt5 + 3 : 2\sqrt5 + 2$
Angles ca. $15.5°, 44.5°, 120°$
![](https://i.stack.imgur.com/6Hnfu.png)
Edge length ratio $1:\sqrt7:\sqrt7$
Angles ca. $21.8°, 79.1°, 79.1°$
![](https://i.stack.imgur.com/feVnN.png)
Edge length ratio $1 : \sqrt[3]{\frac19\sqrt{57} + 1} + \frac{2}{3\sqrt[3]{\frac19\sqrt{57} + 1}} + 1 : \frac{\sqrt[3]{6\sqrt{57} + 46}}3 + \frac4{3\sqrt[3]{6\sqrt{57} + 46}} + \frac43$
(I wonder whether @Blue will come up with something nicer for this here as well…)
Angles ca. $18.2°, 60°, 101.8°$
![](https://i.stack.imgur.com/vb2Oy.png)
Couple of lemmata proven below helps us to concisely elucidate the proposed construction. Unless stated otherwise, we use the expression “$\mathrm{angle\space bisector}$” to denote the $\mathrm{interior\space angle\space bisector}$ of an angle.
$\mathbf{Lemma\space 1.1}$
The altitude and the median dropped from a given vertex of all scalene triangles lie on either side of the interior angle bisector at that vertex.
$\mathbf{Proof\space 1.1}$
Consider $\mathrm{Fig.\space 1}$, where $M, D$, and $H$ are the respective feet of the median, the angle bisector, and the altitude dropped from the vertex $A$ of an scalene triangle $ABC$.
Let $\measuredangle B \gt \measuredangle C$. Therefore, $CA \gt AB$. We know that, by definition, $BM = MC = \frac{1}{2}BC$. We also know that $DC :BD = CA : AB$. Therefore, $DC \gt BD$, which means that $DC \gt \frac{1}{2}BC =MC$.
$$\therefore\quad M\space \mathrm{lies\space between}\space D\space \mathrm{and}\space C. \tag{1} $$
Since $\measuredangle B \gt \measuredangle C$, we have $\measuredangle HAB \lt \measuredangle CAH$. This means that $\measuredangle HAB \lt \measuredangle DAB = \frac{1}{2}\measuredangle A$ or $H$ lies between $B$ and $D$.
$$\therefore\quad H\space \mathrm{lies\space between}\space B\space \mathrm{and}\space D \tag{2}$$
Statements (1) and (2) together prove Lemma 1.1.
$\mathbf{Lemma\space 1.2}$
If feet of any two lines mentioned above coincide, then the foot of the remaining line coincides with the feet of the other two.
$\mathbf{Proof\space 1.2}$
For instance, if the foot of the median coincides with that of the angle bisector, we have
$$BD = DC \quad\rightarrow\quad \frac{BC\cdot AB}{AB+CA} = \frac{BC\cdot CA}{AB+CA} \quad\rightarrow\quad AB = CA.$$
This proves that $ABC$ is an isosceles triangle with its apex at $A$. In an isosceles triangle, feet of all three lines mentioned above coincide.
The other cases can be proved using similar arguments.
$\mathbf{Lemma\space 2}$
The point of intersection of the extended angle bisector of a given vertex of a scalene triangle and the perpendicular bisector of the opposite side of that vertex lies on the circumcircle of that triangle.
$\mathbf{Proof\space 2}$
We consider the angle bisector of the $\measuredangle A$ (i.e. $AE$) and the perpendicular bisector of the side $BC$ shown in $\mathrm{Fig.\space 2}$. These two lines meet at $F$. Let $\measuredangle BCA = \phi$ and $\measuredangle CAE = EAB = \alpha$. Then $\measuredangle CEF$, which is one of the exterior angles of the triangle $AEC$ is equal to $\left( \alpha + \phi\right)$. This is also one of the exterior angles of the triangle $DFE$. Therefore,
$$\measuredangle DFE = \alpha + \phi – 90^o. \tag{3}$$
Let $O$ be the circumcenter of the triangle $ABC$. Hence, the perpendicular bisector of the side $BC$ (i.e. $DF$) passes through $O$.
We can write that $\measuredangle BOA$, the angle subtended at $O$ by the side $AB$, is equal to $2\phi$. Since $OA = OB$, $OAB$ is an isosceles triangle. Therefore, $\measuredangle OAB$ is equal to $90^o - \phi$, which means that
$$\measuredangle EAO = \alpha + \phi – 90^o. \tag{4}$$
Equations (3) and (4) confirm that $OFA$ is an isosceles triangle. Therefore, $OF = OA$ = Circum-Radius - meaning $F$ lies on the circumcircle of $ABC$.
Please note that this lemma is not applicable to isosceles and equilateral triangles, because it is not possible to define the point $F$.
$\mathbf{Construction}$
The construction of the triangle $ABC$ is carried out in two separate stages. In the first stage, the line, on which the side $BC$ lies, is found after line segments representing the given altitude, angle bisector, and median are laid out in space. In the second stage, the circumcircle of $ABC$ is constructed after finding its center and a point that lies on its circumference. The two vertices $B$ and $C$ are the points of intersection between the circumcircle and the line that contains the side $BC$.
$\mathbf{Stage\space 1}$
We make use of the fact that side $BC$, altitude, and angle bisector forms a right triangle to lay out these three lines in space as shown in $\mathrm{Fig.\space 3}$. First, a circle having $AD$ as its diameter is drawn with its center at $P$, which is the midpoint of the angle bisector $AD$. A second circle is drawn having the length of the altitude as its radius and $A$ as its center. Any one of the two points of intersection between these two circles can be selected as $H$, the foot of the altitude. The line $HD$ contains the side $BC$.
Now, construct another circle having the length of the median as its radius and $A$ as the center to cut the extended $HD$ at $M$ and $N$. In accordance with Lemma 1.1, we have to select $AM$ as the median. If we select $AN$ instead, we are putting altitude and median on the same side of angle bisector. Selection of $AM$ as the median define $M$ as the midpoint of side $BC$.
$\mathbf{Stage\space 2}$
Draw the perpendicular line $MF$ to $HD$ at $M$ to intersect the extended angle bisector $AD$ at $F$ as depicted in $\mathrm{Fig.\space 4}$. According to Lemma 2, $F$ is located on the circumcircle of the sought triangle $ABC$. Therefore, $AF$ is a chord of this circumcircle, the center of which lies on $EQ$, the perpendicular bisector of $AF$. Furthermore, since $M$ is the midpoint of side $BC$ and $MF$ is perpendicular to the side $BC$, the circumcenter of $ABC$ lies on $MF$ as well. This means that the point of intersection of $EQ$ and $MF$ is the circumcenter $O$ of $ABC$. Now, to complete the construction, draw the circumcircle, which has the length of $AO$ as its radius and $O$ as its center to cut the extended $HD$ at $B$ and $C$.
$\mathbf{Additional\space Information}$
For brevity, let length of altitude, median, and angle bisector be equal to $h$, $m$, $d$ respectively.
The above described construction produces a unique triangle, if an only if $m \gt d \gt h \gt 0$. The case mentioned in Lemma 1.2, i.e. $m = d = h \gt 0$, where the sought triangle is either an isosceles or an equilateral triangle, can lead to infinite number of solutions. Collapsing of altitude, median, and angle bisector on to a single line makes this case an underdetermined problem and allows the side $BC$ to have any value.
Stage 1 of the construction could have been carried out in two more ways. Firstly, instead of the right triangle already mentioned, we could have constructed the right triangle formed by side $BC$, altitude, and median and continued accordingly. Secondly, since both right triangles have altitude as one of their sides, it is also possible to copy one of them on to the other while observing Lemma 1.1. The last method has an advantage over the other two because we do not have anything to exclude.
At the end of the stage 1 of our construction, we have excluded the median $AN$ (see $\mathrm{Fig.\space 3}$) from our solution space citing a violation of Lemma 1.1. Nevertheless, one can carry out the stage 2 of the construction taking $AN$ as the median to obtain a triangle as the solution, if $h$, $m$, and $d$ satisfies the following condition.
$$\frac{1}{h^2} \ge \frac{1}{m^2} + \frac{1}{d^2} \tag{5}$$
This triangle turns out to have the same altitude and median as the sought triangle. But, the prescribed length of the angle bisector corresponds to that of the exterior angle bisector. This outcome is possible and correct because Lemma 1.1 is not applicable to the bundle of altitude, median, and exterior angle bisector. If the values of $h$, $m$, and $d$ upholds the equal sign of (5), (e.g. $h=12$, $m=20$, and $d=15$), the resulting triangle is the degenerated triangle with $BC=0$.
Best Answer
If 1 and 2 are the same, then the angle bisect or theorem tells us that the third sides are equal, hence the triangle is isosceles.