On a sheet of paper, a blue triangle is drawn. A median, a bisector and an altitude of this triangle (not necessarily from three distinct vertices) are drawn red. The triangle dissects into several parts. Is it possible that one of these parts is an equilateral triangle with red sides?

I tried to get the angles of the triangle formed, but failed because I was not able to find the angle formed by the median.

  • $\begingroup$ I think you menn intersect in the title (probably autocorrect getting out of hand). $\endgroup$
    – timtfj
    Dec 6, 2018 at 16:28
  • $\begingroup$ i.stack.imgur.com/RZTt8.png. Given △ABC △ A B C , BC=a, AC=b, AB=c B C = a , A C = b , A B = c ; ∠BAD=∠CAD ∠ B A D = ∠ C A D , BE⊥AC B E ⊥ A C , AF=BF $\endgroup$ Dec 7, 2018 at 11:54

3 Answers 3


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°$

  • Edge length ratio $\sqrt3-1:\sqrt2:2 = 1:\sqrt{\sqrt3+2}:\sqrt3+1$
    Angles $15°, 30°, 135°$

  • Edge length ratio $\sqrt2:2:\sqrt3+1 = 1:\sqrt2:\sqrt{\sqrt3+2}$
    Angles $30°, 45°, 105°$

  • Edge length ratio $1:2:\sqrt7$
    Angles ca. $19.1°, 40.9°, 120°$

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:
    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
        if not ABC(t=s[t], u=s[u]):
            # Original triangle would be degenerate
        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
        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:
    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"
     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
Answer to https://math.stackexchange.com/q/3028611/35416
with edge length ratio 1 : {} : {}
""".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 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 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 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)))

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.

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°$

  • Edge length ratio $1:2:\sqrt7$ (which we already saw above)
    Angles ca. $19.1°, 40.9°, 120°$


  • Edge length ratio $2 : \sqrt5 + 3 : 2\sqrt5 + 2$
    Angles ca. $15.5°, 44.5°, 120°$

  • Edge length ratio $1:\sqrt7:\sqrt7$
    Angles ca. $21.8°, 79.1°, 79.1°$

  • 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°$

  • 1
    $\begingroup$ Note that $\sqrt{\sqrt{3}+2} =(\sqrt{3}+1)/\sqrt{2}$. Therefore, your first two edge ratios can be written as $$\sqrt{2}:2:\sqrt{3}+1 \qquad\text{and}\qquad \sqrt{3}-1:\sqrt{2}:2$$ $\endgroup$
    – Blue
    Dec 10, 2018 at 3:39
  • 1
    $\begingroup$ Good, but doesn't it go outside what OP asks? In the first figure the red triangle is not a part of the blue, and it is an exterior, not an interior, angle of the blue triangle that is bisected. In the second figure the red triangle is partly outside the blue. In the third figure, again the red is outside the blue and the bisected angle is exterior to the blue triangle. But the fourth figure nicely delivers what the question seems to ask for. $\endgroup$ Dec 10, 2018 at 6:18
  • $\begingroup$ @EdwardPorcella You are right. I did not distinguish inside and outside in my algebraic formulation. I believe that having the full list might be useful to other visitors but I've edited the text to indicate that the choice which ones to count lies with the reader. $\endgroup$
    – MvG
    Dec 10, 2018 at 7:06
  • $\begingroup$ I'll take a look at those cube roots. ;) In the meantime, it may-or-may-not be useful to notice that $$2:\sqrt{5}+3:2\sqrt{5}+2 \;=\; 1:\phi^2:2\phi \;=\; 1:\phi+1:2\phi$$ where $\phi:=\frac12(1+\sqrt{5})$ is the Golden Ratio. $\endgroup$
    – Blue
    Dec 11, 2018 at 23:57
  • 1
    $\begingroup$ @Blue: Thanks, and also for your post; interesting alternative generalization. Minimal polynomials of the cubic root expressions are $x^3 - 3x^2 + x - 1$ and $x^3 - 4x^2 + 4x - 4$ which look harmless enough. I thought about golden ratio when seeing the $\sqrt5$, but with $\sqrt7$ and $\sqrt{13}$ around, using a different representation there did not feel like adding much value. $\endgroup$
    – MvG
    Dec 12, 2018 at 0:14

altitude, bisector, median, and equilateral triangle I'll consider the case where altitude, angle bisector, and median are drawn from different vertices, and go at it in reverse, i.e. start with an equilateral triangle $ABC$.

On $CB$ extended erect a perpendicular at any point $D$, meeting $CA$ extended at $E$. At $E$ reflect $ED$ about $EC$, meeting $BC$ extended at $F$. Let $AB$ extended meet $ED$ at $G$, and join $FG$.

Thus within triangle $EFG$ we have an equilateral triangle $ABC$ with sides $BC$ and $CA$ lying on altitude $FD$ and angle bisector $EJ$. If side $AB$ lies on the median, then $H$ is the midpoint of $EF$.

But since triangle $CED$ has angles of $60^o$, $30^o$, and $90^o$, then in triangle $FEG$ $$\angle FEG=2\angle CEG=60^o$$ And since $$\angle HGE=\angle BGD=30^o$$ it follows that in triangle $HGE$ the angle at $H$ is right.

Hence $GH$ is the perpendicular bisector of $EF$, so that $$\angle EFG=\angle FEG=60^o$$ and consequently triangle $EFG$ is equilateral.

But in an equilateral triangle, altitude, median, and angle bisector drawn from any vertex coincide, and those from all three vertices are concurrent at the circumcenter.

Hence equilateral triangle $ABC$ must be infinitely small compared to triangle $EFG$, i.e. a point. Therefore, a solution in the case where the three lines are drawn from distinct vertices seems impossible. And since an altitude, angle bisector, and median drawn from one vertex cannot intersect to form a triangle, any solution (see @MvG) must have two of the lines drawn from one vertex and the third from another.

  • $\begingroup$ This does seem to rule out the case where the altitude, median, and angle bisector pass through three different vertices. Now what happens if we allow two of them through one vertex? $\endgroup$
    – David K
    Dec 10, 2018 at 2:49

Let's broaden the question slightly, and ask when we can create a triangle $\triangle PQR$ with (not-necessarily-equal) angle measures $p$, $q$, $r$.

We can situate $P$, $Q$, $R$ on the unit circle by taking coordinates $$P := (1,0) \qquad Q := (\cos 2r, \sin 2r) \qquad R := (\cos 2q,-\sin2 q) \tag{1}$$

Consider first the case where the median, altitude, and bisector pass through separate vertices. Define the vertices of $\triangle ABC$ by $$A = \frac{Q + a R}{1+a} \qquad B := \frac{R + b P}{1+b} \qquad C := \frac{P+c R}{1+c} \tag{2}$$ (where $a$, $b$, $c$ are dimensionless parameters, no side-lengths). Note that none of $a$, $b$, $c$ can be $-1$, as this puts the corresponding point "at infinity". (On the other hand, infinity is allowed as a parameter; if, for instance $a=\pm\infty$, then $A=R$.) Define $$D := \overleftrightarrow{QR}\cap\overleftrightarrow{BC} \qquad E := \overleftrightarrow{RP}\cap\overleftrightarrow{CA} \qquad F := \overleftrightarrow{PQ}\cap\overleftrightarrow{AB} \tag{3}$$

We'll suppose that the median, altitude, and bisector pass through $A$, $B$, $C$, respectively. Thus, we require $$D = \frac12(B+C) \qquad (E-B)\cdot(C-A) = 0 \qquad \frac{|AF|}{|BF|}=\frac{|AC|}{|BC|} \tag{4}$$ With the help of Mathematica, I find that conditions $(4)$ give

$$a = -\frac{\cos(p-q) \cos p \sin r}{\sin q\cos(2 p - r)} \qquad b = -\frac{\cos(p-q) \sin p}{2\cos p\sin r} \qquad c = \frac{2 \cos 2 p \sin q}{\sin p \cos(p-q)} \tag{5}$$

When $p=q=r=60^\circ$, we get $a=b=c=-1$, making $\triangle ABC$ "infinitely large". (This is consistent with @Edward's answer, which finds that a finite $\triangle ABC$ leads to an "infinitely small" $\triangle PQR$.) Thus, we get no equilateral triangles. $\square$

More generally, we get $a=b=c=-1$ whenever $$\tan q = -\frac{\sin 2p}{1+3\cos 2p}$$

Also, $r = 90^\circ$ implies $a= -1$, so such right triangles are impossible, too. Everything else seems to be fair game.

For fun, here are the six configuarations whre the angles of $\triangle PQR$ are $50^\circ$, $60^\circ$, $70^\circ$, in some order:

enter image description here enter image description here

enter image description here enter image description here

enter image description here enter image description here

I have not yet completed analysis of the case where two of the segments pass through a common vertex. I will update.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.