feat: Start implementing Rostamian's pages (#39)

Began with incenter.html, the first one alphabetically. Needed one
  new point construction method, and a new option to see what was
  going on.

  Got the planar diagrams on that page working. The next step on #36 will
  be to get 3D diagrams as the theorem on this page generalizes to 3D. That
  will be a bigger task, so merging this now.

Reviewed-on: #39
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
This commit is contained in:
Glen Whitney 2023-10-06 19:38:56 +00:00 committed by Glen Whitney
parent e7361f94a7
commit c99b51dafa
21 changed files with 3549 additions and 37 deletions

View File

@ -7,12 +7,17 @@
<body>
<h3>Debugging</h3>
Trace the following to the JavaScript console:
<h4>Java Geometry Applets</h4>
Trace the following to the JavaScript console: <br/>
<label for="commands">Commands executed</label>
<input type="checkbox" id="commands">
<label for="color">Colors assigned</label>
<input type="checkbox" id="color">
<br/>
<br/>
Alter execution of the translated applet: <br/>
<label for="showall">Show all entities, even hidden ones</label>
<input type="checkbox" id="showall">
<script src="options.js" type="module"></script>
</body>

View File

@ -11,6 +11,7 @@
<li> <a href="inscribed-revived.html">Revived</a> </li>
<li> <a href="inscribed-modified.html">After</a> </li>
<li> <a href="jelts/book1/joyceDefI2.html">Book I Def 2</a> </li>
<li> <a href="rostamian/">Dr. Rostamian's unconverted pages</a> </li>
</ul>
<h2>WRL Files</h2>
<ul><li> <a href="wrl_2.html">Target two</a></li>

View File

@ -0,0 +1,393 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>The incenter via algebra</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>A triangle's incenter via algebra</h1>
<h2>&hellip; and extension to tetrahedra</h2>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="400" height="300">
<param name="background" value="ffffff">
<param name="title" value="The incenter via algebra">
<param name="e[1]" value="A;point;fixed;100,250">
<param name="e[2]" value="B;point;fixed;300,250">
<param name="e[3]" value="C;point;free;50,50;red;red">
<param name="e[4]" value="ABC;polygon;triangle;A,B,C">
<param name="e[5]" value="pt1;point;extend;A,C,C,B;none;none">
<param name="e[6]" value="C';point;proportion;A,pt1,A,C,A,B,A,B;none;none">
<param name="e[7]" value="pt2;point;extend;B,A,A,C;none;none">
<param name="e[8]" value="A';point;proportion;B,pt2,B,A,B,C,B,C;none;none">
<param name="e[9]" value="pt3;point;extend;C,B,B,A;none;none">
<param name="e[10]" value="B';point;proportion;C,pt3,C,B,C,A,C,A;none;none">
<param name="e[11]" value="AA';line;connect;A,A';none;none;magenta">
<param name="e[12]" value="BB';line;connect;B,B';none;none;magenta">
<param name="e[13]" value="CC';line;connect;C,C';none;none;magenta">
<param name="e[14]" value="O;point;intersection;AA',BB'">
<param name="e[15]" value="H;point;foot;O,A,B;none;none">
<param name="e[16]" value="IC;circle;radius;O,H;none;none;black;none">
</applet>
</td></tr>
<tr><td>
<b>
Drag $C$ to change the geometry.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
The incenter lies at the intersection of angle bisectors.
</b>
</td></tr></table>
<h2>Statement of the problem</h2>
<p>
It is a fact of elementary geometry that the center of
a triangle's incircle&mdash;known as its <em>incenter</em>&mdash;lies
at the point of intersection of the
triangle's angle bisectors. This leads to an elegant expression for
the location of the incenter as a linear combination of the
triangle's vertices, as stated in:
<p>
<b>Proposition 1:</b>
<i>
Let $a$, $b$, $c$ be the lengths of the
sides opposite to the vertices $A$, $B$, $C$ of the triangle $ABC$.
Then the incenter, $O$, is expressed as a linear combination of
the vertices as:
\[
O = \frac{a}{p}A + \frac{b}{p}B + \frac{c}{p}C,
\]
where $p = a + b + c$ is the triangle's perimeter.
</i>
<p>
To make sense of this statement, you need to know something about
the algebra of points. The following capsule summary is all that's needed:
<blockquote>
<p>
<b>The algebra of points:</b>
Consider the points $A$ and $B$ and a variable $t$ that takes
values in the range 0 to 1.
If $T$ is a point on the segment $AB$
such that $AT/AB = t$, we write $T = (1-t)A + tB$. Note that when
$t=0$ we get $T=A$, and when $t=1$ we get $T=B$.
As the value of $t$ ranges from 0 to 1, the point $T$ slides
from $A$ to $B$.
</blockquote>
<h2>A preliminary proposition</h2>
<p>
The following elementary proposition is needed for the proof of
Proposition&nbsp;1. This one is a standard result and is
likely to be found in Euclid's <em>Elements</em> but I haven't checked.
<p>
<i>PS:</i>
After this web page was written,
I found out that
Proposition&nbsp;2 appears in Euclid's <em>Elements</em> as
<a href="http://aleph0.clarku.edu/~djoyce/java/elements/bookVI/propVI3.html">Book&nbsp;VI, Proposition&nbsp;3</a>
with a simpler and more elegant proof!
Nevertheless, I am retaining my original proof here as
a not-so-elegant alternative.
<p>
<b>Proposition 2:</b>
<i>
Let the bisector of the angle $C$ in the triangle $ABC$ meet the side $AB$
at point $P$. We have:
\[
\frac{PA}{PB} = \frac{b}{a},
\]
where $a$ and $b$ are as in Proposition&nbsp;1.
</i>
<p>
<b>Proof:</b>
From $P$ drop perpendicular $PM$ and $PN$ onto the sides $AC$ and $BC$;
see the diagram below. The right triangles $CMP$ and $CNP$ are congruent
because they share a common hypotenuse and their angles at $C$ are equal.
Therefore, $PM = PN$.
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="400" height="300">
<param name="background" value="ffffff">
<param name="title" value="The incenter via algebra">
<param name="e[1]" value="A;point;fixed;50,250">
<param name="e[2]" value="B;point;fixed;350,250">
<param name="e[3]" value="C;point;free;100,50;red;red">
<param name="e[4]" value="ABC;polygon;triangle;A,B,C">
<param name="e[5]" value="pt1;point;extend;A,C,C,B;none;none">
<param name="e[6]" value="P;point;proportion;A,pt1,A,C,A,B,A,B">
<param name="e[7]" value="CP;line;connect;C,P;none;none;magenta">
<param name="e[8]" value="M;point;foot;P,C,A">
<param name="e[9]" value="N;point;foot;P,C,B">
<param name="e[10]" value="PM;line;connect;P,M;none;none;green">
<param name="e[11]" value="PN;line;connect;P,N;none;none;green">
<param name="e[12]" value="H;point;foot;C,A,B">
<param name="e[13]" value="CH;line;connect;C,H;none;none;cyan">
<param name="e[14]" value="AH;line;connect;A,H;none;none">
<param name="e[15]" value="BN;line;connect;B,N;none;none">
<param name="e[16]" value="AM;line;connect;A,M;none;none">
</applet>
</td></tr>
<tr><td>
<b>
Drag $C$ to change the geometry.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
</b>
</td></tr></table>
<p>
Let $H$ be the foot of the altitude dropped from $C$. Let us note
the area of the triangle $APC$ may be expressed in two different ways
in terms of the altitudes $CH$ and $PM$:
\[
\frac{1}{2} AP \cdot CH = \frac{1}{2} AC \cdot PM.
\]
Similarly, the area of the triangle $BPC$ may be expressed in two
different way in terms of the altitudes $CH$ and $PN$:
\[
\frac{1}{2} BP \cdot CH = \frac{1}{2} BC \cdot PN.
\]
Dividing these two equalities and recalling that $PM = PN$,
we arrive at the desired assertion.&nbsp;&nbsp;&nbsp;<b>QED</b>
<h2>The proof of Proposition 1</h2>
<p>
The diagram below shows the bisector $CC'$ of the angle $C$.
It is known from elementary geometry that the incenter $O$ lies
on the bisector.
From Proposition 2 we have $C'A/C'B = b/a$. It
follows that $AC'/AB = b/(a+b)$. In terms of the notation of
<em>the algebra of points</em> introduced earlier in this page,
this is expressed as:
\[
C' = \Big(1 - \frac{b}{a+b} \Big) A + \frac{b}{a+b} B
= \frac{a}{a+b} A + \frac{b}{a+b} B.
\]
Since $O = (1-t)C + tC'$ for some $t$, we arrive at:
\[
O = (1-t)C + t\Big[ \frac{a}{a+b} A + \frac{b}{a+b} B \Big].
\]
This expresses the triangle's incenter $O$ in terms of its vertices,
sides lengths, and a yet unknown quantity $t$ that takes values in the range
0 to 1.
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="400" height="300">
<param name="background" value="ffffff">
<param name="title" value="The incenter via algebra">
<param name="e[1]" value="A;point;fixed;100,250">
<param name="e[2]" value="B;point;fixed;300,250">
<param name="e[3]" value="C;point;free;50,50;red;red">
<param name="e[4]" value="ABC;polygon;triangle;A,B,C">
<param name="e[5]" value="pt1;point;extend;A,C,C,B;none;none">
<param name="e[6]" value="C';point;proportion;A,pt1,A,C,A,B,A,B">
<param name="e[7]" value="pt2;point;extend;B,A,A,C;none;none">
<param name="e[8]" value="A';point;proportion;B,pt2,B,A,B,C,B,C;none;none">
<param name="e[9]" value="pt3;point;extend;C,B,B,A;none;none">
<param name="e[10]" value="B';point;proportion;C,pt3,C,B,C,A,C,A;none;none">
<param name="e[11]" value="AA';line;connect;A,A';none;none;none">
<param name="e[12]" value="BB';line;connect;B,B';none;none;none">
<param name="e[13]" value="CC';line;connect;C,C';none;none;magenta">
<param name="e[14]" value="O;point;intersection;AA',BB'">
<param name="e[15]" value="H;point;foot;O,A,B;none;none">
<param name="e[16]" value="IC;circle;radius;O,H;none;none;black;none">
</applet>
</td></tr>
<tr><td>
<b>
Drag $C$ to change the geometry.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
</b>
</td></tr></table>
<p>
If we repeat the same calculation by replacing the vertex $C$ by vertex $A$,
we arrive at:
\[
O = (1-s)A + s\Big[ \frac{b}{b+c} B + \frac{c}{b+c} C \Big],
\]
where $s$ is yet another unknown that takes values in the range from 0 to 1.
<p>
Equating the two expressions for $O$ and collecting the terms, we arrive at:
\[
\Big[\frac{ta}{a+b} + s - 1\Big] A
+
\Big[\frac{tb}{a+b} - \frac{sb}{b+c} \Big] B
+
\Big[1 - t - \frac{sc}{b+c} \Big] C = 0.
\]
In this equations,
if the coefficient of $C$ is nonzero, then we may solve for $C$,
obtaining $C = \alpha A + \beta B$ for some $\alpha$
and $\beta$. But this would
mean that $C$ lies along the line $AB$ which would mean the the
three points $A$, $B$ and $C$ are collinear, therefore the
triangle $ABC$ is degenerate. We conclude that if the triangle is
non-degenerate, then the coefficient of $C$ is zero. Similar
arguments show that the coefficients of $A$ and $B$ are zero.
Thus, the following system of three equations hold:
\[
\frac{ta}{a+b} + s - 1 = 0,
\quad
\frac{tb}{a+b} - \frac{sb}{b+c} = 0,
\quad
1 - t - \frac{sc}{b+c} = 0.
\]
Solving this system for the unknowns $t$ and $s$ we obtain:
\[
t = \frac{a+b}{a+b+c}, \quad s = \frac{b+c}{a+b+c}.
\]
Substituting these in either of the expressions for $O$ we arrive at:
\[
O = \frac{a}{a+b+C}A + \frac{b}{a+b+C}B + \frac{c}{a+b+C}C,
\]
which is equivalent to Proposition&nbsp;1's
assertion.&nbsp;&nbsp;&nbsp;<b>QED</b>
<h2>Extension to tetrahedra</h2>
<p>
Propositions 1 extends to tetrahedra:
<p>
<b>Proposition 3</b>
Let
$a$, $b$, $c$, $d$
be the areas of the faces opposite to the vertices
$A$, $B$, $C$, $D$ of the tetrahedron $ABCD$. The the tetrahedron's
incenter $O$ is given by:
\[
O
= \frac{a}{\mathcal{A}} A
+ \frac{b}{\mathcal{A}} B
+ \frac{c}{\mathcal{A}} C
+ \frac{d}{\mathcal{A}} D,
\]
where $\mathcal{A} = a + b + c + d$ is the tetrahedron's surface area.
<p>
This is proved with the aid of the following extension of Proposition&nbsp;2:
<p>
<b>Proposition 4</b>
<i>
Let
$a$, $b$, $c$, $d$
be the areas of the faces opposite to the vertices
$A$, $B$, $C$, $D$ of the tetrahedron $ABCD$.
Let the bisector plane of the (internal) dihedral angle of edge $CD$
intersect edge $AB$ at point $P$.
The we have:
\[
\frac{PA}{PB} = \frac{b}{a}.
\]
</i>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="400" height="300">
<param name="background" value="ffffff">
<param name="title" value="Triangle's incenter">
<param name="e[1]" value="A;point;fixed;100,250,300">
<param name="e[2]" value="B;point;fixed;300,250,300">
<param name="e[3]" value="C;point;fixed;350,200,-400">
<param name="e[4]" value="D;point;free;200,40;red;red">
<param name="e[5]" value="ABCD;polyhedron;tetrahedron;A,B,C,D">
<param name="e[6]" value="ABC;plane;3points;A,B,C;none;none;none;none">
<!-- construct the bisector of the dihedral angle with edge DC -->
<param name="e[7]" value="pl1;plane;perpendicular;D,C;none;none;none;none">
<param name="e[8]" value="Apl1;point;foot;A,pl1;none;none">
<param name="e[9]" value="Bpl1;point;foot;B,pl1;none;none">
<param name="e[10]" value="pt1;point;angleBisector;Apl1,D,Bpl1,pl1;none;none">
<param name="e[11]" value="tmp1;plane;3points;D,C,pt1;none;none;none;none">
<param name="e[12]" value="P;point;intersection;A,B,tmp1">
<param name="e[13]" value="DP;line;connect;D,P;none;none;cyan">
<param name="e[14]" value="CP;line;connect;C,P;none;none;cyan">
</applet>
</td></tr>
<tr><td>
<b>
Drag $D$ to change the geometry.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
The plane $CDP$ bisects the dihedral angle of edge $CD$.
</b>
</td></tr></table>
<p>
I leave the proofs to you, the diligent reader. You will find
useful information in a
<a
href="http://groups.google.com/group/sci.math/browse_thread/thread/56c187e018a85111/436f448dfab35a83">discussion
in the sci.math newsgroup</a> from January 17, 2006.
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a>
on June 26, 2010.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html">Geometry Problems and Puzzles</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,156 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>A geometric inequality</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>A geometric inequality</h1>
<h4>&hellip;and its solution by
<a href="mailto:haoyuep@aol.com">Dan Hoey</a></h4>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="400" height="400">
<param name="background" value="ffffff">
<param name="title" value="A geometric inequality">
<param name="e[1]" value="A;point;fixed;100,300">
<param name="e[2]" value="B;point;fixed;300,300">
<param name="e[3]" value="ABC;polygon;equilateralTriangle;A,B">
<param name="e[4]" value="C;point;vertex;ABC,3">
<param name="e[5]" value="P;point;free;180,320;red;red">
<param name="e[6]" value="PA;line;connect;P,A;none;none;green">
<param name="e[7]" value="PB;line;connect;P,B;none;none;green">
<param name="e[8]" value="PC;line;connect;P,C;none;none;magenta">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $P$.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
Proposition: $PC \le PA + PB$.
</b>
</td></tr></table>
<h2>The problem</h2>
<p>
<b>Proposition:</b> <i>Let $ABC$ be an equilateral triangle and $P$
be an arbitrary point in its plane. Then $PC \le PA + PB$.</i>
<p>
This was brought up in
<a href="http://mathforum.org/kb/message.jspa?messageID=1086018">a message </a>
on the <code>geometry.puzzles</code> newsgroup on November&nbsp;11, 2001.
Go to that message and scroll to the bottom of the page to see the discussion
thread.
<p>
On November&nbsp;22, 2001
<a href="mailto:haoyuep@aol.com">Dan Hoey</a>
offered a particularly nice solution. He also commented that he
had learned that problem may be related to the <em>Van Schooten Theorem</em>,
which indeed it is. See
<a href="http://www.cut-the-knot.org/Curriculum/Geometry/Pompeiu.shtml">Van
Schooten's and Pompeiu's Theorems: What are these?</a> for much detail and
historical background.
<h2>The proof</h2>
<p>
Here is Dan Hoey's proof of the proposition as stated above.
<p>
On the line segment $AP$ construct the equilateral triangle
$APD$, as shown in the diagram below, then add the line segment $DC$.
<p>
Let us show that the triangles $APB$ and $ADC$ are congruent. For this,
Let us observe that the sides $AP$ and $AB$ in the triangle $APB$
equal the sides $AD$ and $AC$ in the triangle $ADC$, by the construction.
Moreover, the angles $BAP$ and $CAD$ are equal because each equals
the difference of
a 60 degree angle and the angle $DAB$. Therefore, the triangles $APB$ and
$ADC$ are congruent by the side-angle-side equality.
We conclude, in particular, that $PB = DC$.
<p>
In the triangle $PDC$ we have $PC \le PD + DC$. In this inequality
replace $PD$ and $DC$ by their equivalents $PA$ and $PB$ to arrive at
$PC \le PA + PB$.&nbsp;&nbsp;&nbsp;<b>QED</b>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="400" height="400">
<param name="background" value="ffffff">
<param name="title" value="A geometric inequality">
<param name="e[1]" value="A;point;fixed;100,300">
<param name="e[2]" value="B;point;fixed;300,300">
<param name="e[3]" value="ABC;polygon;equilateralTriangle;A,B">
<param name="e[4]" value="C;point;vertex;ABC,3">
<param name="e[5]" value="P;point;free;180,320;red;red">
<param name="e[6]" value="PA;line;connect;P,A;none;none;green">
<param name="e[7]" value="PB;line;connect;P,B;none;none;green">
<param name="e[8]" value="PC;line;connect;P,C;none;none;magenta">
<param name="e[9]" value="APD;polygon;equilateralTriangle;A,P;none;none;none">
<param name="e[10]" value="D;point;vertex;APD,3;">
<param name="e[11]" value="AD;line;connect;A,D;none;none;lightGray">
<param name="e[12]" value="PD;line;connect;P,D;none;none;lightGray">
<param name="e[13]" value="CD;line;connect;C,D;none;none;lightGray">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $P$.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
Observation: The triangles $APB$ and $ADC$ are congruent.
</b>
</td></tr></table>
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a>
on November 23, 2001.<br>
Cosmetic revisions on June 23, 2010.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html">Geometry Problems and Puzzles</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,131 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>An equilateral triangle inscribed in a rectangle</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>An equilateral triangle inscribed in a rectangle</h1>
<p>
The following solution to the
<a href="http://userpages.umbc.edu/~rostamia/Geometry/inscribed-equilateral.html">inscribed triangle puzzle</a>
is due to <b>Peter&nbsp;Renz</b>
who communicated it to me on December&nbsp;2016.
<p>
For the sake of completeness, let's begin with the statement of the puzzle.
The figure below depicts a equilateral triangle $AEF$ inscribed in a rectangle
in such a way that the two share a vertex. We wish to show that the
area of the pink triangle ($ECF$) is the sum of the areas of the other two
colored triangles.
<div class="centered">
<img src="./inscribed-equilateral-solution/frame000.png" width=500
height=417 alt="[frame000.png]">
</div>
<p>
As noted in the referring page (see the link above), a solution with
the aid of trigonometry is quite straightforward. The purpose of this
page is to present a solution in the style of <i>Euclid</i>, without appeal
to trigonometry.
<p>
The following animation encapsulates Peter&nbsp;Renz's solution in its
entirety.
<div class="centered">
<img src="./inscribed-equilateral-solution/waterwheel.gif" width=500
height=417 alt="[animation.gif]">
</div>
The animation should be self-explanatory if you stare at it long enough.
Nevertheless, I will now proceed to point out the reasoning through
several still images extracted from that animation.
<ol>
<li>
Construct a circle on the diameter $FE$, and then subdivide its boundary
into six 60-degree wedges starting at the vertex $C$. Mark the division
points $C$, $P$, $Q'$, $C'$, $P'$, and $Q$, as shown.
<div class="centered">
<img src="./inscribed-equilateral-solution/frame007.png" width=500
height=417 alt="[frame007.png]">
</div>
<li>
Rotate the triangle $FDA$ about $F$ by 60 degrees to bring the edge $FA$ to
coincide with $FE$.
<div class="centered">
<img src="./inscribed-equilateral-solution/frame073.png" width=500
height=417 alt="[frame073.png]">
</div>
The key observation is that the rotation moves the vertex $D$ into $P'$.
<li>
Further rotate the triangle about the circle's center by 180 degrees to
place it in the $FPE$ position.
<div class="centered">
<img src="./inscribed-equilateral-solution/frame111.png" width=500
height=417 alt="[frame111.png]">
</div>
<li>
Rotate the triangle $EBA$ about $E$ by 60 degrees to bring the edge $EA$ to
coincide with $EF$. Then the vertex $B$ will move onto $Q'$ for reasons
similar to those explained above.
<div class="centered">
<img src="./inscribed-equilateral-solution/frame177.png" width=500
height=417 alt="[frame177.png]">
</div>
<li>
The two red line segments in the figure below are parallel and of equal lengths
by virtue of being the side and the &ldquo;radius&rdquo; of the
regular hexagon (not shown) inscribed in the circle.
<div class="centered">
<img src="./inscribed-equilateral-solution/frame180.png" width=500
height=417 alt="[frame180.png]">
</div>
The altitudes of the three triangles, dropped from the vertices $C$,
$P$, and $Q'$ are shown in dashed lines. It should be clear that the
altitude dropped from $C$ is equal in length to the sum of those of
the other two altitudes. Since the three triangles share a common base,
the area of one is the sum of the areas of the other two. Q.E.D.
</ol>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html">Geometry Problems and Puzzles</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,135 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>An equilateral triangle inscribed in a rectangle</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>An equilateral triangle inscribed in a rectangle</h1>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="410" height="370">
<param name="background" value="ffffff">
<param name="title" value="An equilateral triangle inscribed in a rectangle">
<!-- the moving mechanism -->
<param name="e[1]" value="O;point;fixed;290,320;0;0;0;0">
<param name="e[2]" value="U1;point;fixed;510,320;0;0;0;0">
<param name="e[3]" value="V1;point;perpendicular;O,U1;0;0;0;0">
<param name="e[4]" value="U;point;angleDivider;U1,O,V1,3;0;0;0;0">
<param name="e[5]" value="V;point;angleDivider;V1,O,U1,3;0;0;0;0">
<param name="e[6]" value="circ1;circle;radius;O,U;0;0;0;0">
<param name="e[7]" value="li1;line;parallel;U,O,U1;0;0;0;0">
<param name="e[8]" value="li2;line;parallel;V,O,V1;0;0;0;0">
<param name="e[9]" value="W;point;intersection;li1,li2;0;0;0;0">
<param name="e[10]" value="VW;line;connect;V,W;0;0;lightGray">
<param name="e[11]" value="@;point;lineSegmentSlider;V,W,0,220;red;red">
<param name="e[12]" value="li3;line;parallel;@,O,U1;0;0;0;0">
<param name="e[13]" value="li4;line;chord;circ1,li3;0;0;0;0">
<param name="e[14]" value="X1;point;first;li4;0;0;0;0">
<!-- the triangle -->
<param name="e[15]" value="A;point;fixed;50,320">
<param name="e[16]" value="V2;point;perpendicular;A,U1;0;0;0;0">
<param name="e[17]" value="li5;line;parallel;A,O,X1;0;0;0;0">
<param name="e[18]" value="X2;point;last;li5;0;0;0;0">
<param name="e[19]" value="X;point;extend;A,X2,A,X2;0;0;0;0">
<param name="e[20]" value="tri1;polygon;equilateralTriangle;X,A;0;0;0;0">
<param name="e[21]" value="Y;point;vertex;tri1,3;0;0;0;0">
<param name="e[22]" value="B;point;midpoint;X,Y">
<param name="e[23]" value="ABC;polygon;equilateralTriangle;A,B">
<param name="e[24]" value="C;point;vertex;ABC,3">
<!-- the rectangle -->
<param name="e[25]" value="D;point;foot;B,A,U1">
<param name="e[26]" value="F;point;foot;C,A,V2">
<param name="e[27]" value="FE;line;parallel;F,A,D;0;0;0;0">
<param name="e[28]" value="E;point;last;FE">
<param name="e[29]" value="rect;polygon;quadrilateral;A,D,E,F;0;0;black;0">
<param name="e[30]" value="ADB;polygon;triangle;A,D,B;0;0;0;pink">
<param name="e[31]" value="ACF;polygon;triangle;A,C,F;0;0;0;pink">
<param name="e[32]" value="BCE;polygon;triangle;B,C,E;0;0;0;cyan">
</applet>
</td></tr>
<tr><td>
<b>
Slide the &ldquo;@&rdquo; up and down to change the geometry.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
Proposition: The blue area equals the sum of the two pink areas.
</b>
</td></tr></table>
<h2>Problem statement</h2>
<p>
The diagram above shows an equilateral triangle inscribed in a rectangle
in such a way that the two have a vertex in common. This subdivides the
rectangle into four disjoint triangles.
The original equilateral triangle is shown in white
in the diagram; the other three are shown in color.
<p>
<b>Proposition</b>
<em>
The area of the blue triangle equals the sum
of the areas of the two pink triangles.
</em>
<p>
The trigonometric proof is quite straightforward. I don't
know of a classical proof <i>a la</i> <span class="name">Euclid</span>.
(Well, actually I haven't tried much.)
If you can think of a neat non-trigonometric proof, let me know. I will
put it here with due credit.
<p>
This problem appeared as a conjecture
<a href="http://mathforum.org/kb/thread.jspa?forumID=129&amp;messageID=1083967">in an article</a>
in the <code>geometry.puzzles</code> newsgroup on March 15, 1997.
<p>
<b>Note added January 8, 2017:</b>
Here is a
<a href="inscribed-equilateral-solution.html">clever solution</a>
that <b>Peter Renz</b> sent me a in December 2016. Thanks, Peter!
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a>
on July 2, 2010.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html">Geometry Problems and Puzzles</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,142 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Triangles with common base</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>Triangles with common base</h1>
<h4>An interesting problem proposed by
<a href="mailto:stevebg@adelphia.net">Steve Gray</a></h4>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="650" height="250">
<param name="background" value="ffffff">
<param name="title" value="Triangles with common base">
<param name="e[1]" value="A;point;fixed;50,215">
<param name="e[2]" value="B;point;fixed;250,215">
<param name="e[3]" value="T0;polygon;equilateralTriangle;A,B">
<param name="e[4]" value="C;point;vertex;T0,3">
<param name="e[5]" value="D;point;free;115,173;red;red">
<param name="e[6]" value="DC;line;connect;D,C;none;none;orange">
<param name="e[7]" value="DA;line;connect;D,A;none;none;blue">
<param name="e[8]" value="DB;line;connect;D,B;none;none;green">
<param name="e[9]" value="P;point;fixed;300,215">
<param name="e[10]" value="Q;point;fixed;600,215">
<param name="e[11]" value="PQ;line;connect;P,Q">
<param name="e[12]" value="B';point;similar;P,Q,C,A,D">
<param name="e[13]" value="PB';line;connect;P,B';none;none;green">
<param name="e[14]" value="QB';line;connect;Q,B';none;none;green">
<param name="e[15]" value="C';point;similar;P,Q,A,B,D">
<param name="e[16]" value="PC';line;connect;P,C';none;none;orange">
<param name="e[17]" value="QC';line;connect;Q,C';none;none;orange">
<param name="e[18]" value="A';point;similar;P,Q,B,C,D">
<param name="e[19]" value="PA';line;connect;P,A';none;none;blue">
<param name="e[20]" value="QA';line;connect;Q,A';none;none;blue">
<param name="e[21]" value="T1;polygon;triangle;B',C',A';none;none;lightGray">
<!-- construct the centroid -->
<param name="e[22]" value="midA'B';point;midpoint;A',B';none;none">
<param name="e[23]" value="li1;line;connect;C',midA'B';none;none;none">
<param name="e[24]" value="midB'C';point;midpoint;B',C';none;none">
<param name="e[25]" value="li2;line;connect;A',midB'C';none;none;none">
<param name="e[26]" value="M;point;intersection;li1,li2">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $D$.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
Proposition: $A'B'C'$ is equilateral and its centroid $M$ is fixed.
</b>
</td></tr></table>
<h2>The construction</h2>
<p>
This problem was proposed by
<a href="mailto:stevebg@adelphia.net">Steve Gray</a>
in the <code>geometry.puzzles</code> newsgroup
(<a href="http://mathforum.org/kb/message.jspa?messageID=1088552">see
the original message</a>) on July 26, 2002.
Scroll to the bottom of that page for a link to the solution.
<p>
Consider an equilateral triangle $ABC$, a line segment $PQ$,
and an arbitrary point $D$, as seen in the diagram above.
On the segment $PQ$ construct three triangles
$PC'Q$,
$PA'Q$,
$PB'Q$,
similar to the triangles
$ADB$,
$BDC$,
$CDA$,
respectively.
<p>
<b>Proposition 1:</b>
The triangle $A'B'C'$ is equilateral.
<p>
<b>Proposition 2:</b>
The centroid of $A'B'C'$ is independent of $D$.
<p>
Steve adds:
<blockquote>
<p>
Now generalize this for a regular $n$-gon. The new points form a
regular $n$-gon whose centroid is independent of $D$.
This problem is original so far as I know. I am interested in the
simplest synthetic solution; no algebra, please.
</blockquote>
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a>
July 26, 2002.<br>
Cosmetic revisions on June 17, 2010.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html">Geometry Problems and Puzzles</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,403 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>An angle trisection</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>An angle trisection</h1>
<h4>Construction by Chris Alberts</h4>
<p>
The construction described in this page is due to Chris Alberts, who
sent it to me in an email on March 15, 2011.
I have paraphrased and rearranged his construction, but the
differences from the original are cosmetic. The error analysis is mine.
<p>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="810" height="600">
<param name="background" value="ffffff">
<param name="title" value="An angle trisection">
<!-- <param name="align" value="left"> -->
<param name="pivot" value="O">
<!-- The angle AOB -->
<param name="e[1]" value="O;point;fixed;400,400">
<param name="e[2]" value="A;point;fixed;790,400">
<param name="e[3]" value="c;circle;radius;O,A;none;none;lightGray;none">
<param name="e[4]" value="B;point;circleSlider;c,720,0;red;red">
<param name="e[5]" value="OA;line;connect;O,A;none;none;blue">
<param name="e[6]" value="OB;line;connect;O,B;none;none;blue">
<!-- The inner circle -->
<param name="e[7]" value="A';point;fixed;530,400">
<param name="e[8]" value="c';circle;radius;O,A';none;none;lightGray;none">
<param name="e[9]" value="l1;line;chord;OB,c';none;none;none">
<param name="e[10]" value="B';point;first;l1">
<!-- the points P, R, M -->
<param name="e[11]" value="E;point;midpoint;B',O">
<param name="e[12]" value="c'';circle;radius;B',O;none;none;00aa00;none">
<param name="e[13]" value="l2;line;parallel;E,A,O;none;none;none">
<param name="e[14]" value="l3;line;chord;l2,c'';none;none;none">
<param name="e[15]" value="P;point;first;l3">
<param name="e[16]" value="l4;line;chord;l2,c';none;none;none">
<param name="e[17]" value="R;point;last;l4">
<param name="e[18]" value="l8;line;connect;E,R">
<param name="e[19]" value="M;point;midpoint;P,R">
<!-- the points N and F -->
<param name="e[20]" value="l5;line;chord;B',M,c';none;none;none">
<param name="e[21]" value="N;point;last;l5">
<param name="e[22]" value="l9;line;connect;B',N;none;none;none;none"> <!-- -->
<param name="e[23]" value="l6;line;parallel;B',A,O;none;none;none">
<param name="e[24]" value="c1;circle;radius;N,B';none;none;none;none">
<param name="e[25]" value="l7;line;chord;l6,c1;none;none;none">
<param name="e[26]" value="F;point;last;l7">
<!-- the point G -->
<param name="e[27]" value="T1;polygon;triangle;B',N,F;none;none;lightGray;ddffcc">
<param name="e[28]" value="l10;line;chord;N,F,c;none;none;none">
<param name="e[29]" value="G;point;first;l10">
<param name="e[30]" value="l11;line;connect;F,G;none;none;cyan">
<param name="e[31]" value="l12;line;chord;G,O,c';none;none;none">
<param name="e[32]" value="H;point;last;l12">
<param name="e[33]" value="l13;line;connect;G,H;none;none;lightGray">
<!-- the points H, D, and J -->
<param name="e[34]" value="D;point;last;l1">
<param name="e[35]" value="l14;line;connect;O,D">
<param name="e[36]" value="l15;line;parallel;D,O,A;none;none;none">
<param name="e[37]" value="c2;circle;radius;H,D;none;none;none;none">
<param name="e[38]" value="l16;line;chord;l15,c2;none;none;none">
<param name="e[39]" value="J;point;last;l16">
<param name="e[40]" value="T2;polygon;triangle;D,H,J;none;none;lightGray;ddffcc">
<!-- the point U -->
<param name="e[41]" value="l17;line;chord;H,J,c;none;none;none">
<param name="e[42]" value="K;point;first;l17">
<param name="e[43]" value="l18;line;connect;J,K;none;none;cyan">
<param name="e[44]" value="c3;circle;radius;A,K;none;none;none;none">
<param name="e[45]" value="l19;line;bichord;c,c3;none;none;none">
<param name="e[46]" value="T;point;last;l19">
<param name="e[47]" value="l20;line;connect;O,T;none;none;red">
<param name="e[48]" value="l21;line;connect;K,T;none;none;lightGray">
<!-- labels for the circles -->
<param name="e[49]" value="C'';point;circleSlider;c'',150,0;00aa00;none">
<param name="e[50]" value="C';point;fixed;255,420;lightGray;none">
<param name="e[51]" value="C;point;fixed;120,120;lightGray;none">
<!-- angle markers -->
<param name="e[52]" value="po1;point;fixed;445,400;none;none">
<param name="e[53]" value="ci1;circle;radius;O,po1;none;none;none;none">
<param name="e[54]" value="li1;line;chord;O,T,ci1;none;none;none">
<param name="e[55]" value="po2;point;first;li1;none;none">
<param name="e[56]" value="li2;line;chord;O,B,ci1;none;none;none">
<param name="e[57]" value="po3;point;first;li2;none;none">
<param name="e[58]" value="se1;sector;sector;O,po1,po2;none;none;black;yellow">
<param name="e[59]" value="se2;sector;sector;O,po2,po3;none;none;black;orange">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $B$ to change the angle $AOB$
(but keep $AOB$ to less than 90 degrees).<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
The red line ($OT$) is an approximate trisector of the angle $AOB$.
</b>
</td></tr></table>
<p>
Consider the circular arc $AB$ on the circle $C$ centered at $O$,
shown in the diagram above.
Assume that the angle $AOB$ is between 0 and 90 degrees.
To trisect $AOB$, do:
<ol>
<li>
Draw the circle $C'$ centered at $O$ with a radius 1/3&nbsp;$OA$.
Mark $A'$ and $B'$ its intersections with the line segments $OA$ and $OB$,
respectively.
<li>
Draw the circle $C''$ (shown in green) centered at $B'$ through the point $O$.
<li>
Let $E$ be the midpoint of the line segment $OB'$.
Draw a line through $E$ parallel to $OA$ and mark its intersections
$P$ and $R$ with the circles $C''$ and $C'$, as shown.
<li>
Let $M$ be the midpoint of the line segment $PR$. Draw the line $B'M$
and extend to the intersection point $N$ with the circle $C'$.
<li>
Draw a line through $B'$ parallel to $OA$, and select the point $F$ on
it so that $NB' = NF$.
<li>
Extend the line segment $NF$ to intersect the circle $C$ at $G$.
<li>
Draw the line $GO$ and extend it to the point of intersection $H$
with the circle $C'$.
<em>Note:</em> If you look at the diagram closely, you will be able to
see that the line segments $GO$ and $GN$
are <em>not</em> collinear.
<li>
Let $D$ be diagonally opposite the point $B'$ in the
circle $C'$. Draw a line through $D$ parallel to $OA$, and
select the point $J$ on it so that $HD=HJ$.
<em>Note:</em> Although it is impossible to discern visually,
the line segments $OH$ and $HJ$
are <em>not</em> collinear.
<li>
Extend the line segment $HJ$ to intersect the circle $C$ at $K$.
<li>
Reflect $K$ about the line $OA$ to get the point $T$.
</ol>
The line $OT$ is an approximate trisector of the angle $AOB$.
<h2>Error analysis</h2>
<p>
The calculation of the coordinates of all the points that appear
in the construction is elementary but
the resulting expressions are massively large, therefore I will refrain
from putting them on this web page. (I did the calculations in <em>Maple</em>).
<p>
Let $\alpha$ and $\beta(\alpha)$ be the sizes of the angles $AOB$ and $AOT$,
respectively.
Express the trisection error as $e(\alpha) = \frac{\alpha}{3} - \beta(\alpha)$.
It turns out that $e(0) = e(\pi/2) = 0$.
In the range $0$ to $\pi/2$ the error is the largest near
1.22175&nbsp;radians = 70.0013&nbsp;degrees. The maximum error is
$2.32\times10^{-18}$&nbsp;radians = $1.33\times10^{-16}$&nbsp;degrees.
<p>
Expanding $\beta(\alpha)$ in power series we get:
\[
\beta(\alpha)
= \frac{1}{3} \alpha +
\frac{5^9}{2^{13} \cdot 3^{40}} \alpha^{27} + O(\alpha^{29})
= \frac{1}{3} \alpha +
\frac{1953125}{99595595440594360737792} \alpha^{27} + O(\alpha^{29}).
\]
<h2>Alberts' refinement</h2>
<p>
The extraordinary precision of Chris Alberts' trisection
is a result of the application of a refinement technique which
I will call <em>Alberts' refinement</em>.
The 10 steps of his trisection procedure, described above,
consist of three distinct stages:
<ol>
<li><em>Stage 1,</em> corresponding to the steps 1&ndash;5 of the construction,
produces the angle $FB'N$ which is roughly one third of the angle $AOB$.
The trisection error at this stage may be as large as 0.7 degrees.
<li><em>Stage 2,</em> corresponding to the steps 6&ndash;7 of the construction,
produces the angle $A'OH$ which is quite close to $\frac13 \alpha$. The worst
error is 0.00013791&nbsp;degrees and
occurs when $AOB$ is near 70 degrees.
<li><em>Stage 3,</em> corresponding to the steps 8&ndash;10 of the construction,
produces the angle $AOT$ which, as noted above, is within
$1.33\times10^{-16}$&nbsp;degrees of the exact trisection.
</ol>
Each of the stages 2 and 3 consists of one application
of <em>Alberts' refinement</em> which may be formulated as
a stand-alone geometric proposition illustrated
in the diagram below.
<p>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="450" height="320">
<param name="background" value="ffffff">
<param name="title" value="Alberts' refinement">
<!-- the lines L2, L1, L3 -->
<param name="e[1]" value="O;point;fixed;40,250">
<param name="e[2]" value="B';point;fixed;380,250;none;none">
<param name="e[3]" value="L2;line;connect;O,B';black">
<param name="e[4]" value="c1;circle;radius;O,B';none;none;none;none">
<param name="e[5]" value="A';point;circleSlider;c1,100,10;none;none">
<param name="e[6]" value="L1;line;connect;O,A';black">
<param name="e[7]" value="s1;sector;sector;O,B',A';none;none;blue;none">
<param name="e[8]" value="X;point;circleSlider;c1,450,110;red;red">
<param name="e[9]" value="L3;line;connect;O,X;none;none;blue">
<!-- the points A, P, B -->
<param name="e[10]" value="p1;point;fixed;160,250;none;none">
<param name="e[11]" value="A;point;cutoff;L1,O,p1">
<param name="e[12]" value="c2;circle;radius;A,O;none;none;none;none">
<param name="e[13]" value="l1;line;chord;O,X,c2">
<param name="e[14]" value="P;point;last;l1">
<param name="e[15]" value="T1;polygon;triangle;O,A,P;none;none;black;ffddee">
<param name="e[16]" value="c3;circle;radius;P,O;none;none;none;none">
<param name="e[17]" value="l2;line;chord;O,B',c3">
<param name="e[18]" value="B;point;last;l2">
<param name="e[19]" value="T2;polygon;triangle;O,P,B;none;none;black;ddffcc">
<!-- the circle of radius 3 -->
<param name="e[20]" value="l3;line;extend;O,A,O,A;none;none;none;none">
<param name="e[21]" value="l4;line;extend;l3,O,A;none;none;none;none">
<param name="e[22]" value="p2;point;last;l4;none;none">
<param name="e[23]" value="c4;circle;radius;A,O,p2;none;none;magenta;none">
<!-- the point G -->
<param name="e[24]" value="l5;line;chord;P,B,c4;none;none;none">
<param name="e[25]" value="G;point;first;l5">
<param name="e[26]" value="l6;line;connect;B,G;none;none;cyan">
<param name="e[27]" value="l7;line;connect;A,G">
<!-- the horizontal line -->
<param name="e[28]" value="l8;line;parallel;A,O,p1">
<param name="e[29]" value="L;point;last;l8">
<!-- angle markers -->
<param name="e[30]" value="p3;point;fixed;80,250;none;none">
<param name="e[31]" value="c5;circle;radius;O,p3;none;none;none;none">
<param name="e[32]" value="l9;line;chord;O,P,c5;none;none;none">
<param name="e[33]" value="p4;point;first;l9;none;none">
<param name="e[34]" value="s2;sector;sector;O,p3,p4;none;none;none;blue">
<param name="e[35]" value="p5;point;cutoff;l8,O,p3;none;none">
<param name="e[36]" value="c6;circle;radius;A,p5;none;none;none;none">
<param name="e[37]" value="l10;line;chord;A,G,c6;none;none;none">
<param name="e[38]" value="p6;point;first;l10;none;none">
<param name="e[39]" value="s3;sector;sector;A,p6,p5;none;none;none;red">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $X$.
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
If the blue angle is an approximate trisection of the angle $AOB$,
then the red angle is a much better trisection.<br>
Note that the red angle hardly changes as the point $X$ varies.
</b>
</td></tr></table>
<p>
The lines $L_1$ and $L_2$ intersect at the point $O$. Suppose that the
line $OX$ is a crude trisector of the angle between $L_1$ and $L_2$.
The rest of the diagram shows a
straightedge and compass construction
that produces a much finer trisection.
Here are the details of the construction:
<ol>
<li> Pick an arbitrary point $A$ (other than $O$) on the line $L_1$.
<li> Locate the point $P$ on the line $OX$ so that $AO = AP$.
<li> Locate the point $B$ on the line $L_2$ so that $PO = PB$.
<li> Draw a circle centered at $A$ and radius equal to three
times the length of $OA$. (This circle is shown in magenta.)
<li> Extend the line segment $PB$ to a intersect that circle at a point $G$.
(This extension is shown in cyan.)
<li> Draw a line $AL$ through $A$ and parallel to the line $L_2$.
</ol>
The angle $LAG$ is quite close to being one third of the angle $AOB$.
To see this, let us write $\alpha$, $\beta$, and $\beta'$ for
the measures (in the radian units)
of the angles $AOB$, $XOB$, and $LAG$, respectively.
Let $\beta = \frac13 \alpha + \delta$ and $\beta' = \frac13 \alpha + \delta'$.
Thus, $\delta$ and $\delta'$ measure the trisection errors corresponding to the
angles $\beta$ and $\beta'$.
<p>
A quite straightforward calculation, involving an application of the
<em>law of sines</em> in the triangle $APG$ leads to the equation:
\[
\delta' = \delta - \arcsin\Big(\frac13 \sin3\delta\Big).
\]
Expanding this into power series in $\delta$, we obtain:
\[
\delta' = \frac43 \delta^3 - \frac45 \delta^7 + O(\delta^9).
\]
This explains the notable efficiency of the refinement. For instance,
if the value of $\beta$ has two significant digits after the decimal point,
the value of $\beta'$ will have six significant digits after the decimal
point.
<p>
<i>Remark 1:</i> Move the point $X$ in the diagram and note
how insensitive the angle
$LAG$ is to the choice of $X$. This indicates that even a crude
initial approximation produces an excellent trisection.
<p>
<i>Remark 2:</i> If you examine closely Chris Alberts' trisection
described earlier in
this page, you will find buried in it two instances of <em>Alberts'
refinement</em>.
<h2>A final comment</h2>
<p>
Comparing the precision of the trisection described in this
page to those of others presented on my website may not
seem to be quite fair. After all, <em>any</em> approximate trisection may
be applied iteratively to refine its own result.
Nevertheless, I am making an exception in this case because in
Chris Alberts' trisection, the iterative refinement is an
inherent feature of the method.
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a> on
March 23, 2011.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html#trisections">list of trisections</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,268 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>An angle trisection</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>An angle trisection</h1>
<h4>Construction by
<a href="mailto:wayne.baker@ed.cna.nl.ca">Wayne Baker</a></h4>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="570" height="360">
<param name="background" value="ffffff">
<param name="title" value="An angle trisection">
<!-- the angle AOB -->
<param name="e[1]" value="O;point;fixed;260,310">
<param name="e[2]" value="A;point;fixed;520,310">
<param name="e[3]" value="OA;line;connect;O,A;none;none;blue">
<param name="e[4]" value="C;circle;radius;O,A;none;none;none;none">
<param name="e[5]" value="B;point;circleSlider;C,20,0;red;red">
<param name="e[6]" value="OB;line;connect;O,B;none;none;blue">
<param name="e[7]" value="z1;sector;sector;O,A,B;none;none;blue;none">
<!-- point P quadrisects the arc AB -->
<param name="e[8]" value="t1;point;angleBisector;A,O,B;none;none">
<param name="e[9]" value="t2;point;angleBisector;A,O,t1;none;none">
<param name="e[10]" value="Ot2;line;chord;O,t2,C;none;black;none">
<param name="e[11]" value="P;point;first;Ot2">
<param name="e[12]" value="AP;line;connect;A,P;none;none;green">
<!-- the arc A'OB' -->
<param name="e[13]" value="A';point;fixed;455,310">
<param name="e[14]" value="C';circle;radius;O,A';none;none;none;none">
<param name="e[15]" value="t9;line;chord;O,B,C';none;none;none">
<param name="e[16]" value="B';point;first;t9">
<param name="e[17]" value="z2;sector;sector;O,A',B';none;none;orange;none">
<!-- P' -->
<param name="e[18]" value="t3;circle;radius;A',A,P;none;none;none;none">
<param name="e[19]" value="t4;line;bichord;t3,C';none;none;none">
<param name="e[20]" value="P';point;first;t4">
<param name="e[21]" value="s1;line;chord;O,P',C;none;none;none">
<param name="e[22]" value="s2;point;first;s1;none;none">
<param name="e[23]" value="s3;line;connect;O,s2;none;none;red">
<param name="e[24]" value="A'P';line;connect;A',P';none;none;green">
<!-- angle marker -->
<param name="e[25]" value="p1;point;fixed;290,310;none;none">
<param name="e[26]" value="c1;circle;radius;O,p1;none;none;none;none">
<param name="e[27]" value="l1;line;chord;OA,c1;none;none;none">
<param name="e[28]" value="q1;point;first;l1;none;none">
<param name="e[29]" value="l2;line;chord;s3,c1;none;none;none">
<param name="e[30]" value="q2;point;first;l2;none;none">
<param name="e[31]" value="S1;sector;sector;O,q1,q2;none;none;black;orange">
<param name="e[32]" value="l3;line;chord;OB,c1;none;none;none">
<param name="e[33]" value="q3;point;first;l3;none;none">
<param name="e[34]" value="S2;sector;sector;O,q2,q3;none;none;black;yellow">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $B$ to change the angle $AOB$.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
The red line is an approximate trisector of the angle $AOB$.
</b>
</td></tr></table>
<H2>The Basic Construction</H2>
<p>
Here is a very simple straightedge and compass
construction of an approximate angle trisector due to
<a href="mailto:wayne.baker@ed.cna.nl.ca">Wayne Baker</a>.
<p>
Let us represent the angle by
the circular arc $AB$ centered at $O$; see the diagram above.
The angle's size may be anything from 0 to 180 degrees.
To trisect, do:
<ol>
<li>
Quadrisect the angle $AOB$, that is, divide it into four
equal parts. The arc $AP$ in the diagram above represents one quarter
of the original arc $AB$. Let $L$ be the length of the chord $AP$ (shown in green).
<li>
Draw a circular arc (shown in orange)
centered at $O$ and radius 3/4 of $OA$. Mark $A'$ and $B'$ its intersections
with the rays $OA$ and $OB$, respectively.
<li>
Swing an arc (not shown) of radius $L$ centered at $A'$ and mark $P'$ its intersection with
the arc $A'B'$, as shown.
</ol>
<p>
The line $OP'$ is an approximate trisector of the angle $AOB$.
<h2>Error Analysis</h2>
<p>
Let $\alpha$ and $\beta=\tau(\alpha)$ be the sizes of the angles $AOB$ and $A'OP'$,
respectively. It is straightforward to show that
\[
\beta
= 2 \arcsin\big(\frac{4}{3}\sin\frac{\alpha}{8}\big)
= \frac{\alpha}{3} + \frac{7}{2^7\cdot3^4}\alpha^3 + O(\alpha^5)
= \frac{\alpha}{3} + \frac{7}{10368}\alpha^3 + O(\alpha^5).
\]
<!-- The first two terms of the series are the same as those
in trisect-dunham.html. The third terms are different.
b_baker := 2*arcsin(4/3*sin(a/8));
series(b_baker,a);
b_durham := a/2 - arctan(sin(a/4 - arcsin(sin(a/4)/2))*4/3);
series(b_durham, a);
-->
<p>
The error
$
\ds e(\alpha) = \tau(\alpha) - \frac{\alpha}{3}
$
is monotonically increasing in $\alpha$.
The worst error on the interval $0 \le \alpha \le \pi/2$ is
$e(\pi/2)$ = 0.002695 radians = 0.154 degrees.
The worst error on the interval $0 \le \alpha \le \pi$ is
$e(\pi)$ = 0.0237 radians = 1.360 degrees.
<h2>Iterative Improvement</h2>
<p>
As we see in the asymptotic expansion shown above, the
angle $\tau(\alpha)$ is slightly larger than the target value of $\alpha/3$.
Making three copies of the constructed angle, and putting them
end-to-end as in arcs $A'P'$, $P'P''$, and $P''P'''$ shown in the diagram below,
we arrive at the endpoint $P'''$ which is very slightly off the point $B'$,
and just outside the arc $A'B'$. The constructible angle $B'OP'''$ is exactly
three times the error $e(\alpha)$.
If we were able to trisect $B'OP'''$ exactly, then we
would know the error, and consequently will have achieved
the exact trisection of the original angle.
Of course the exact trisection of $B'OP'''$ is impossible in general, but we
may repeat the method outlined in the <em>Basic Construction</em> above
to obtain an <em>approximate</em> trisection of $B'OP'''$,
which will yield $ \tau\big(3\tau(\alpha) - \alpha\big) $,
and consequently an improved trisection $\tau_{\mathrm{improved}}(\alpha)$
of the original angle:
\[
\tau_{\mathrm{improved}}(\alpha) = \tau(\alpha) - \tau\big(3\tau(\alpha) - \alpha\big)
= \frac{\alpha}{3} - \frac{7^4}{2^{28}\cdot3^{13}} \alpha^9 +
O(\alpha^{11}).
\]
The error
$ \ds e_{\mathrm{improved}}(\alpha) = \frac{\alpha}{3} - \tau_{\mathrm{improved}}(\alpha)$
is monotonically increasing in $\alpha$. In particular,
$e_{\mathrm{improved}}(\pi/2) = 1.5\times 10^{-9}$ radians
$ = 8.6\times10^{-8}$ degrees.
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="570" height="360">
<param name=background value="ffffff">
<param name=title value="An angle trisection">
<!-- the angle AOB -->
<param name="e[1]" value="O;point;fixed;260,310">
<param name="e[2]" value="A;point;fixed;520,310">
<param name="e[3]" value="OA;line;connect;O,A">
<param name="e[4]" value="C;circle;radius;O,A;none;none;none;none">
<param name="e[5]" value="B;point;circleSlider;C,50,0">
<param name="e[6]" value="OB;line;connect;O,B">
<param name="e[7]" value="z1;sector;sector;O,A,B;none;none;blue;none">
<!-- point P quadrisects the arc AB -->
<param name="e[8]" value="t1;point;angleBisector;A,O,B;none;none">
<param name="e[9]" value="t2;point;angleBisector;A,O,t1;none;none">
<param name="e[10]" value="Ot2;line;chord;O,t2,C;none;black;none">
<param name="e[11]" value="P;point;first;Ot2">
<param name="e[12]" value="OP;line;connect;O,P;none;none;none">
<!-- the arc A'OB' -->
<param name="e[13]" value="A';point;fixed;455,310">
<param name="e[14]" value="C';circle;radius;O,A';none;none;none;none">
<param name="e[15]" value="t9;line;chord;O,B,C';none;none;none">
<param name="e[16]" value="B';point;first;t9">
<param name="e[17]" value="z2;sector;sector;O,A',B';none;none;orange;none">
<!-- P' -->
<param name="e[18]" value="t3;circle;radius;A',A,P;none;none;none;none">
<param name="e[19]" value="t4;line;bichord;t3,C';none;none;none">
<param name="e[20]" value="P';point;first;t4">
<param name="e[21]" value="s1;line;chord;O,P',C;none;none;none">
<param name="e[22]" value="s2;point;first;s1;none;none">
<param name="e[23]" value="s3;line;connect;O,s2;none;none;red">
<!-- P'' -->
<param name="e[24]" value="t5;circle;radius;P',A,P;none;none;none;none">
<param name="e[25]" value="t6;line;bichord;t5,C';none;none;none">
<param name="e[26]" value="P'';point;first;t6">
<!-- P'''
Note the trailing spaces after P'''. These become a part of the label!
-->
<param name="e[27]" value="t7;circle;radius;P'',A,P;none;none;none;none">
<param name="e[28]" value="t8;line;bichord;t7,C';none;none;none">
<param name="e[29]" value="P''' ;point;first;t8">
<param name="e[30]" value="OP''';line;connect;O,P''' ;none;none;black">
<param name="e[31]" value="u1;sector;sector;O,B',P''' ;none;none;none;magenta">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $B$ to change the angle $AOB$.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
The red line is an approximate trisector of the angle $AOB$.<br>
The arcs $P'P''$ and $P''P'''$ are copies of $A'P'$. The endpoint $P'''$
is just slightly off the point $B'$.<br>
The (very small and nearly indiscernible)
angle $B'OP'''$ is three times the trisection error.
</b>
</td></tr></table>
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a> on
May 31, 2010.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html#trisections">list of trisections</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,154 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>An angle trisection</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>An angle trisection</h1>
<h4>
Construction by <a href="http://cdsmith.wordpress.com/2009/04/20/old-memories-about-trisecting-angles/">cdsmith</a>
</h4>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="600" height="450">
<param name="background" value="ffffff">
<param name="title" value="An angle trisection">
<param name="e[1]" value="O;point;fixed;250,340">
<param name="e[2]" value="A;point;fixed;450,340">
<param name="e[3]" value="cir1;circle;radius;O,A;none;none;none;none">
<param name="e[4]" value="B;point;circleSlider;cir1,400,0;red;red">
<param name="e[5]" value="OA;line;connect;O,A;none;none;blue">
<param name="e[6]" value="OB;line;connect;O,B;none;none;blue">
<param name="e[7]" value="AB;line;connect;A,B;none;none;lightGray">
<param name="e[8]" value="M;point;midpoint;A,B">
<param name="e[9]" value="cA;circle;radius;A,M;none;none;green;none">
<param name="e[10]" value="cM;circle;radius;M,A;none;none;green;none">
<param name="e[11]" value="cB;circle;radius;B,M;none;none;green;none">
<param name="e[12]" value="li1;line;bichord;cA,cM;none;none;none">
<param name="e[13]" value="C;point;first;li1">
<param name="e[14]" value="li2;line;bichord;cM,cB;none;none;none">
<param name="e[15]" value="D;point;first;li2">
<param name="e[16]" value="OC;line;connect;O,C;none;none;red">
<param name="e[17]" value="OD;line;connect;O,D;none;none;red">
<!-- angle marker -->
<param name="e[18]" value="p1;point;fixed;285,340;none;none">
<param name="e[19]" value="c1;circle;radius;O,p1;none;none;none;none">
<param name="e[20]" value="l1;line;chord;OA,c1;none;none;none">
<param name="e[21]" value="q1;point;first;l1;none;none">
<param name="e[22]" value="l2;line;chord;O,C,c1;none;none;none">
<param name="e[23]" value="q2;point;first;l2;none;none">
<param name="e[24]" value="s1;sector;sector;O,q1,q2;none;none;black;orange">
<param name="e[25]" value="l3;line;chord;OB,c1;none;none;none">
<param name="e[26]" value="q3;point;first;l3;none;none">
<param name="e[27]" value="s2;sector;sector;O,q2,q3;none;none;black;yellow">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $B$ to change the angle $AOB$.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
The red lines $OC$ and $OD$ are approximate trisectors of the angle $AOB$.
</b>
</td></tr></table>
<h2>Construction</h2>
<p>
To trisect the angle $AOB$ (with $OA=OB$), do:
<ol>
<li>
Find the midpoint $M$ of the line segment $AB$.
<li>
Draw circles centered at $A$, $M$, and $B$, each of radius $\frac{1}{2}AB$,
and mark their intersection points $C$ and $D$, as shown in the diagram
above.
</ol>
The lines $OC$ and $OD$ are approximate trisectors of the angle $AOB$.
<h2>Error Analysis</h2>
<p>
Let $\alpha$ and $\beta$ be the sizes of the angles $AOB$ and $AOC$,
respectively. One may verify that
\[
\beta =
\arctan\bigg(
\frac{
\sin\frac{\alpha}{2}
\sin\big(\frac{\pi}{6}+\frac{\alpha}{2}\big)
}{
1 +
\sin\frac{\alpha}{2}
\cos\big(\frac{\pi}{6}+\frac{\alpha}{2}\big)
}
\bigg)
=
\frac{1}{4}\alpha + \frac{\sqrt{3}}{16} \alpha^2 - \frac{1}{16} \alpha^3
+ O(\alpha^4).
\]
<p>
This says that $\ds \beta \approx \frac{1}{4}\alpha$ when $\alpha$ is small,
so small angles are quadrisected, rather than trisected!
(This is clearly visible in the interactive diagram above.)
For not-so-small angles,
the method works reasonably well. In fact, it produces
<em>exact trisection</em> for angles $\alpha=\pi/2$ and $\alpha=\pi$.
<p>
The worst error in
the range $0 \le \alpha \le \pi$ is
0.0214 radians = 1.23 degrees.
This occurs at
$\alpha=2\arctan(\sqrt{3}\pm\sqrt{2})$ which corresponds to
angles of approximately 35 degrees and 145 degrees.
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a>
on June 14, 2010.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html#trisections">list of trisections</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,169 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>An angle trisection</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>An angle trisection</h1>
<h4>From page 26 of<br>
Underwood Dudley, <i>The Trisectors</i>, 2nd edition, 1996.
</h4>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="600" height="250">
<param name="background" value="ffffff">
<param name="title" value="An angle trisection">
<param name="e[1]" value="O;point;fixed;50,200">
<param name="e[2]" value="A;point;fixed;200,200">
<param name="e[3]" value="C;point;extend;O,A,O,A">
<param name="e[4]" value="D;point;extend;O,C,O,A">
<param name="e[5]" value="AD;line;connect;A,D;none;none;lightGray">
<param name="e[6]" value="OA;line;connect;O,A;none;none;blue">
<param name="e[7]" value="c0;circle;radius;O,A;none;none;none;none">
<param name="e[8]" value="B;point;circleSlider;c0,70,100;red;red">
<param name="e[9]" value="OB;line;connect;O,B;none;none;blue">
<param name="e[10]" value="arcAB;sector;sector;O,A,B;none;none;blue;none">
<param name="e[11]" value="L;line;parallel;B,O,D;none;none;black">
<param name="e[12]" value="circDE;circle;radius;C,D;none;none;none;none">
<param name="e[13]" value="x8;line;chord;L,circDE;none;none;none">
<param name="e[14]" value="E;point;last;x8">
<param name="e[15]" value="CE;line;connect;C,E;none;none;lightGray">
<param name="e[16]" value="arcDE;sector;sector;C,D,E;none;none;lightGray;none">
<param name="e[17]" value="F;point;foot;E,AD">
<param name="e[18]" value="EF;line;connect;E,F;none;none;lightGray">
<param name="e[19]" value="circFT;circle;radius;O,F;none;none;none;none">
<param name="e[20]" value="x13;line;chord;L,circFT;none;none;none">
<param name="e[21]" value="T;point;first;x13">
<param name="e[22]" value="OT;line;connect;O,T;none;none;red">
<param name="e[23]" value="arcFT;sector;sector;O,F,T;none;none;green;none">
<param name="e[24]" value="circOA;circle;radius;O,A;none;none;none">
<param name="e[25]" value="x2;line;chord;OT,circOA;none;none;none">
<param name="e[26]" value="P;point;first;x2;none;none;none">
<param name="e[27]" value="p1;point;fixed;80,200;none;none">
<param name="e[28]" value="c1;circle;radius;O,p1;none;none;none;none">
<param name="e[29]" value="l1;line;chord;OA,c1;none;none;none">
<param name="e[30]" value="q1;point;first;l1;none;none">
<param name="e[31]" value="l2;line;chord;OT,c1;none;none;none">
<param name="e[32]" value="q2;point;first;l2;none;none">
<param name="e[33]" value="s1;sector;sector;O,q1,q2;none;none;black;orange">
<param name="e[34]" value="p2;point;fixed;80,200;none;none">
<param name="e[35]" value="c2;circle;radius;O,p2;none;none;none;none">
<param name="e[36]" value="l3;line;chord;OT,c2;none;none;none">
<param name="e[37]" value="q3;point;first;l3;none;none">
<param name="e[38]" value="l4;line;chord;OB,c2;none;none;none">
<param name="e[39]" value="q4;point;first;l4;none;none">
<param name="e[40]" value="s2;sector;sector;O,q3,q4;none;none;black;yellow">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $B$ to change the angle $AOB$
(but keep it less than 90 degrees).<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
The red line, $OT$, is an approximate trisector of the angle $AOB$.
</b>
</td></tr></table>
<h2>Construction</h2>
<p>
We wish to trisect the given angle $AOB$. Assume the angle is less than
90 degrees; see the diagram above.
<ol>
<li>
Draw a line through $B$ parallel to $OA$.
<li>
Extend $OA$ and mark off $AC$ and $CD$ along it, each equal to $OA$.
<li>
Draw the arc $DE$ with center $C$ and radius $CD$.
<li>
Drop a perpendicular from $E$ to $OD$ and let $F$ be the foot of the perpendicular.
<li>
Draw the arc $FT$ with center $O$ and radius $OF$ (shown in green).
</ol>
The line $OT$ is an approximate trisector of the angle $AOB$.
<h2>Error Analysis</h2>
<p>
Let $\alpha$ and $\beta$ be the sizes of the angles $AOB$ and $FOT$,
respectively. It is straightforward to show that
\[
\beta
= \frac{\sin \alpha}{2+\cos \alpha}
= \frac{\alpha}{3} - \frac{1}{2^2 \cdot 3^3 \cdot 5} \alpha^5 +
O(\alpha^7)
= \frac{\alpha}{3} - \frac{1}{540} \alpha^5 + O(\alpha^7).
\]
The error
$
\ds e(\alpha) = \frac{\alpha}{3} - \beta
$
is monotonically increasing in $\alpha$.
The worst error on the interval $0 \le \alpha \le \pi/2$ is
$e(\pi/2) =$ 0.0236 radians = 1.352 degrees.
<p>
It is interesting that the error is $O(\alpha^5)$ rather than $O(\alpha^3)$
as one might have expected. Despite this, the method's accuracy
is not particularly remarkable for angles that are not very close to zero.
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a>
on July 26, 2002.<br>
Cosmetic revisions on June 6, 2010.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html#trisections">list of trisections</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,155 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>An angle trisection</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>An angle trisection</h1>
<h4>Construction attributed to A. G. O<br>
From page 133 of<br>
Underwood Dudley, <i>The Trisectors</i>, 2nd edition, 1996.
</h4>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="450" height="260">
<param name="background" value="ffffff">
<param name="title" value="An angle trisection">
<param name="e[1]" value="O;point;fixed;210,225">
<param name="e[2]" value="A;point;fixed;420,225">
<param name="e[3]" value="cir1;circle;radius;O,A;none;none;none;none">
<param name="e[4]" value="B;point;circleSlider;cir1,0,0;red;red">
<param name="e[5]" value="OA;line;connect;O,A;none;none;blue">
<param name="e[6]" value="OB;line;connect;O,B;none;none;blue">
<param name="e[7]" value="arcAB;sector;sector;O,A,B;none;none;blue;none">
<param name="e[8]" value="pt1;point;angleBisector;A,O,B;none;none">
<param name="e[9]" value="C;point;cutoff;O,pt1,O,A">
<param name="e[10]" value="OC;line;connect;O,C;none;none;lightGray">
<param name="e[11]" value="D;point;fixed;280,225">
<param name="e[12]" value="E;point;cutoff;OB,O,D">
<param name="e[13]" value="G;point;cutoff;OC,O,D">
<param name="e[14]" value="F;point;extend;A,O,O,D">
<param name="e[15]" value="OF;line;connect;O,F;none;none;lightGray">
<param name="e[16]" value="sec1;sector;sector;O,D,E;none;none;orange">
<param name="e[17]" value="sec2;sector;sector;O,E,F;none;none;lightGray">
<param name="e[18]" value="li1;line;chord;F,G,cir1;none;none;none">
<param name="e[19]" value="T;point;last;li1">
<param name="e[20]" value="FT;line;connect;F,T;none;none;lightGray">
<param name="e[21]" value="OT;line;connect;O,T;none;none;red">
<!-- angle markers -->
<param name="e[22]" value="p1;point;fixed;240,225;none;none">
<param name="e[23]" value="c1;circle;radius;O,p1;none;none;none;none">
<param name="e[24]" value="l1;line;chord;OA,c1;none;none;none">
<param name="e[25]" value="q1;point;first;l1;none;none">
<param name="e[26]" value="l2;line;chord;OT,c1;none;none;none">
<param name="e[27]" value="q2;point;first;l2;none;none">
<param name="e[28]" value="s1;sector;sector;O,q1,q2;none;none;black;orange">
<param name="e[29]" value="l3;line;chord;OB,c1;none;none;none">
<param name="e[30]" value="q3;point;first;l3;none;none">
<param name="e[31]" value="s2;sector;sector;O,q2,q3;none;none;black;yellow">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $B$ to change the angle $AOB$.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
The red line, $OT$, is an approximate trisector of the angle $AOB$.
</b>
</td></tr></table>
<h2>Construction</h2>
<p>
We wish to trisect the given angle $AOB$ represented by the circular arc
$AB$ centered at $O$, as shown in the diagram above.
<ol>
<li>
Draw the bisector $OC$ of the angle $AOB$.
<li>
Draw the circular arc $DE$ centered at $O$ so that $OD = \frac{1}{3} OA$.
Let $G$ be where the line $OC$ intersects the arc $DE$.
<li>
Locate $F$ on the extension of $OA$ so that $OF=OD$.
<li>
Connect $FG$ and extend to the intersection point $T$ with
the arc $AB$.
</ol>
The line $OT$ (shown in red) is an approximate trisector of the angle $AOB$.
<h2>Error Analysis</h2>
<p>
Let $\alpha$ and $\beta$ be the sizes of the angles $AOB$ and $AOT$,
respectively. It is straightforward to show that
\[
\beta
= \frac{\alpha}{4} + \arcsin\Big(
\frac{1}{3}\sin\frac{1}{4}\alpha \Big)
= \frac{1}{3}\alpha - \frac{1}{2^4\cdot3^4} \alpha^3 + O(\alpha^7)
= \frac{1}{3}\alpha - \frac{1}{1296} \alpha^3 + O(\alpha^7).
\]
The term after $\alpha^3$ is $\alpha^7$. That's not a typo.
<p>
The error
$
\ds e(\alpha) = \frac{\alpha}{3} - \beta
$
is monotonically increasing in $\alpha$.
The worst error on the interval $0 \le \alpha \le \pi/2$ is
$e(\pi/2) =$ 0.003 radians = 0.171 degrees.
The worst error on the interval $0 \le \alpha \le \pi$ is
$e(\pi)$ = 0.024 radians = 1.367 degrees.
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a>
on July 26, 2002.<br>
Cosmetic revisions on June 13, 2010.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html#trisections">list of trisections</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,267 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>An angle trisection</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>An angle trisection</h1>
<h4>
R. L. Durham, <i>A simple construction for the approximate trisection
of an angle</i>,
American Mathematical Monthly,
vol.&nbsp;51, no.&nbsp;4, April 1944, pp.&nbsp;217&ndash;218.
</h4>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="450" height="350">
<param name="background" value="ffffff">
<param name="title" value="An angle trisection">
<param name="e[1]" value="O;point;fixed;210,300">
<param name="e[2]" value="A;point;fixed;420,300">
<param name="e[3]" value="cir1;circle;radius;O,A;none;none;none;none">
<param name="e[4]" value="B;point;circleSlider;cir1,0,0;red;red">
<param name="e[5]" value="OA;line;connect;O,A;none;none;blue">
<param name="e[6]" value="OB;line;connect;O,B;none;none;blue">
<param name="e[7]" value="arcAB;sector;sector;O,A,B;none;none;blue;none">
<param name="e[8]" value="pt1;point;angleBisector;A,O,B;none;none">
<param name="e[9]" value="C;point;cutoff;O,pt1,O,A">
<param name="e[10]" value="OC;line;connect;O,C;none;none;lightGray">
<!-- O-pt2 is 1/3 of OA -->
<param name="e[11]" value="pt2;point;fixed;280,300;none;none">
<param name="e[12]" value="F;point;proportion;O,A,O,pt2,C,A,C,A">
<param name="e[13]" value="G;point;extend;A,C,F,C">
<param name="e[14]" value="AG;line;connect;A,G;none;none;lightGray">
<param name="e[15]" value="cir2;circle;radius;G,F;none;none;green;none">
<param name="e[16]" value="li1;line;perpendicular;C,O,O,A;none;none;lightGray">
<param name="e[17]" value="li2;line;chord;li1,cir2;none;none;none">
<param name="e[18]" value="T;point;first;li2">;
<param name="e[19]" value="OT;line;connect;O,T;none;none;red">;
<!-- angle markers -->
<param name="e[20]" value="p1;point;fixed;240,300;none;none">
<param name="e[21]" value="c1;circle;radius;O,p1;none;none;none;none">
<param name="e[22]" value="l1;line;chord;OA,c1;none;none;none">
<param name="e[23]" value="q1;point;first;l1;none;none">
<param name="e[24]" value="l2;line;chord;OT,c1;none;none;none">
<param name="e[25]" value="q2;point;first;l2;none;none">
<param name="e[26]" value="s1;sector;sector;O,q1,q2;none;none;black;orange">
<param name="e[27]" value="l3;line;chord;OB,c1;none;none;none">
<param name="e[28]" value="q3;point;first;l3;none;none">
<param name="e[29]" value="s2;sector;sector;O,q2,q3;none;none;black;yellow">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $B$ to change the angle $AOB$.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
The red line, $OT$, is an approximate trisector of the angle $AOB$.
</b>
</td></tr></table>
<h2>Construction</h2>
<p>
We wish to trisect the given angle $AOB$ represented by the circular arc
$AB$ centered at $O$, as shown in the diagram above.
<ol>
<li>
Draw the bisector $OC$ of the angle $AOB$.
<li>
Draw the chord $AC$ and trisect it at point $F$ so that $CF=\frac{1}{3}CA$.
<li>
Locate point $G$ on the extension of the chord $AC$ so that $GC=CF$.
<li>
Draw a circle (shown in green) centered at $G$ and through point $F$.
<li>
Let $T$ on the green circle be such that $TC$ is perpendicular to $OC$.
</ol>
The line $OT$ (shown in red) is an approximate trisector of the angle $AOB$.
<p>
<span class="name">R. L. Durham</span>
(see the reference at the top of this page) goes one step further.
Using the line $OT$ as a starting point, he produces a substantially
better approximation $OT'$. The construction for this second stage is
complex and not particularly pretty, so I won't go into that here.
<h2>Error Analysis</h2>
<p>
Let $\alpha$ and $\beta $ be the sizes of the angles $AOB$ and $AOT$,
respectively. It is possible to show that
\[
\beta
= \frac{1}{2}{\alpha}
-
\arctan\bigg(
\frac{4}{3}\sin\Big(
\frac{\alpha}{4} -
\arcsin\big(\frac{1}{2}\sin\frac{\alpha}{4}\big)
\Big)\bigg)
= \frac{1}{3}\alpha + \frac{7}{2^7\cdot3^4} \alpha^3 + O(\alpha^5)
= \frac{1}{3}\alpha + \frac{7}{10368} \alpha^3 + O(\alpha^5).
\]
<!-- The first two terms of the series are the same as those
in trisect-baker.html. The third terms are different.
b_baker := 2*arcsin(4/3*sin(a/8));
series(b_baker,a);
b_durham := a/2 - arctan(sin(a/4 - arcsin(sin(a/4)/2))*4/3);
series(b_durham, a);
-->
<p>
The error $\ds e(\alpha) = \beta - \frac{\alpha}{3}$
is monotonically increasing in $\alpha$.
The worst error on the interval $0 \le \alpha \le \pi/2$ is
$e(\pi/2) =$ 0.00265 radians = 0.152 degrees.
The worst error on the interval $0 \le \alpha \le \pi$ is
$e(\pi)$ = 0.0218 radians = 1.252 degrees.
<h2>Calculation details</h2>
<p>
The derivation of the formula for $\beta$ shown above is a straightforward
application of trigonometry. Here are the details.
<p>
The angles $AOC$ and $ACT$ subtend the arc $AB$ of the circle centered
at $O$. Since $AOC = \alpha/2$, then $ACT=\alpha/4$. Consequently,
the angle $GCT$ is $\pi - \alpha/4$.
<p>
We apply the law of sines in the triangle $GCT$. (The edge $GT$
is not shown in the diagram to reduce clutter.) Let us write
$\theta$ for the angle $CGT$. The the angle $CTG$ is
$\alpha/4 - \theta$. The law of sines is:
\[
\frac{\sin\theta}{CT} = \frac{\sin(\alpha/4-\theta)}{CG} = \frac{\sin(\pi-\alpha/4)}{GT}.
\]
But $GT=2CG$, therefore $2\sin(\alpha/4-\theta) = \sin(\pi-\alpha/4) = \sin(\alpha/4)$, whence
\[
\theta = \frac{\alpha}{4} - \arcsin\big(\frac{1}{2}\sin\frac{\alpha}{4}\big).
\]
Going back to the equation of law of since, we compute $CT$:
\[
CT = \frac{\sin\theta}{\sin(\alpha/4)} GT.
\]
But $GT = GF = 2CF = \frac{2}{3} AC
= \frac{2}{3} \big(2OA\sin\frac{\alpha}{4}\big) = \frac{4}{3} OA\sin\frac{\alpha}{4}$.
We conclude that $CT = \frac{4}{3} OA\sin\theta$.
Then $COT = \arctan \frac{CT}{OC} = \arctan \frac{4}{3} \sin\theta$. Finally, the angle
$\beta$, which equals $COA - COT$, is given by:
\[
\beta = \frac{\alpha}{2} - \arctan \frac{4}{3} \sin\theta.
\]
Substituting the expression for $\theta$ calculated above, we arrive at the desired
expression for $\beta$.
<h2>Aside</h2>
<p>
In 1990, the well-known logician
<span class="name">Willard Van Orman Quine</span>
wrote an expository article in
the <em>Mathematics Magazine</em> where he proves that
some angles cannot be trisected by ruler and compass. The proof
is elementary (but not short) and requires
nothing but simple algebra. Here is the full reference:
<h4>
W. V. Quine, <i>Elementary proof that some angles cannot be trisected by ruler
and compass</i>,
Mathematics Magazine,
vol.&nbsp;63, no.&nbsp;2, April 1990, pp.&nbsp;95&ndash;105.
</h4>
<p>
In a prefatory note he refers to <span class="name">Durham</span>, the author of the trisection
described in this web page. He writes:
<blockquote>
<p>
This purely expository paper dates from April 1946.
<span class="name">Robert Lee Durham</span>,
president emeritus of Southern Seminary Junior and College,
had sent me a hundred dollars and asked me to make it clear to him
why an angle cannot in general be trisected by ruler
and compass. He had himself presented a way of almost trisecting
any angle by ruler and compass, to an accuracy for acute angles of
1/720 of a degree. [Here he refers to <span class="name">Durham</span>'s
1944 article cited at the top of this web page.]
<p>
I welcomed the money and the occasion to familiarize myself
with the famous proof. I was guided in large part by
<span class="name">L. E. Dickson</span>,
<em>Why it is impossible trisect to an
angle or construct a regular polygon of 7 or 9 sides by ruler and compass,</em>
Mathematics Teacher, vol.&nbsp;14 (1921), 217&ndash;223.
<p>
<span class="name">Mr. Durham</span>
expressed satisfaction with my report and proposed
paying for publishing it as a pamphlet. With his approval I
submitted instead to a mathematics journal. After waiting
nineteen months for a decision from the journal, I recalled
the paper and dropped the matter.
</blockquote>
<p>
<span class="name">Quine</span>
goes on to explain how this article was eventually published
more than 50 years after it was written.
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a>
on June 13, 2010.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html#trisections">list of trisections</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,185 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>An angle trisection</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>An angle trisection</h1>
<h4>
Free Jamison, <i>Trisection Approximation</i>, American Mathematical Monthly,
vol.&nbsp;61, no.&nbsp;5, May 1954, pp.&nbsp;334&ndash;336.
</h4>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="700" height="400">
<param name="background" value="ffffff">
<param name="title" value="An angle trisection">
<param name="e[1]" value="O;point;fixed;200,200">
<param name="e[2]" value="A;point;fixed;200,350">
<param name="e[3]" value="C1;circle;radius;O,A;none;none;lightGray;none">
<param name="e[4]" value="B;point;circleSlider;C1,280,0;red">
<param name="e[5]" value="OA;line;connect;O,A;none;none;blue">
<param name="e[6]" value="OB;line;connect;O,B;none;none;blue">
<!-- the points F, D, C -->
<param name="e[7]" value="x1;point;angleBisector;A,O,B;none;none">
<param name="e[8]" value="x2;point;angleBisector;x1,O,B;none;none">
<param name="e[9]" value="x3;point;angleBisector;x1,O,x2;none;none">
<param name="e[10]" value="F;point;cutoff;O,x2,O,A">
<param name="e[11]" value="D;point;cutoff;O,x3,O,A">
<param name="e[12]" value="C;point;extend;F,O,F,O">
<!-- the lines FC, CE, OE -->
<param name="e[13]" value="FC;line;connect;F,C;none;none;lightGray">
<param name="e[14]" value="CD;line;connect;C,D;none;none;green">
<param name="e[15]" value="E;point;extend;C,D,C,F">
<param name="e[16]" value="DE;line;connect;D,E;none;none;green">
<param name="e[17]" value="OE;line;connect;O,E;none;none;red">
<param name="e[18]" value="p1;point;fixed;225,200;none;none">
<param name="e[19]" value="c1;circle;radius;O,p1;none;none;none;none">
<param name="e[20]" value="l1;line;chord;OA,c1;none;none;none">
<param name="e[21]" value="q1;point;first;l1;none;none">
<param name="e[22]" value="l2;line;chord;OE,c1;none;none;none">
<param name="e[23]" value="q2;point;first;l2;none;none">
<param name="e[24]" value="s1;sector;sector;O,q1,q2;none;none;black;yellow">
<param name="e[25]" value="p2;point;fixed;225,200;none;none">
<param name="e[26]" value="c2;circle;radius;O,p2;none;none;none;none">
<param name="e[27]" value="l3;line;chord;OE,c2;none;none;none">
<param name="e[28]" value="q3;point;first;l3;none;none">
<param name="e[29]" value="l4;line;chord;OB,c2;none;none;none">
<param name="e[30]" value="q4;point;first;l4;none;none">
<param name="e[31]" value="s2;sector;sector;O,q3,q4;none;none;black;orange">
<!-- needed for the error analysis, not the construction -->
<param name="e[32]" value="OD;line;connect;O,D;none;none;lightGray">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $B$ to change the angle $AOB$
(but stay on the right half of the circle).<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
The red line $OE$ is an approximate trisector of the angle $AOB$.
</b>
</td></tr></table>
<h2>The construction</h2>
<p>
This construction, due to Free Jamison
(see the reference at the top of this page)
is a more accurate variant of the construction described in
<a href="trisect-jamison.html">a simpler construction</a>.
<p>
Consider the circular arc $AB$ centered at $O$, shown in the diagram above.
Assume the angle $AOB$ is between 0 and 180 degrees.
To trisect $AOB$, do:
<ol>
<li> Pick the points $F$ and $D$ on the arc $BA$ such that
arc $BF$ = 2/8 of the arc $BA$ and
arc $BD$ = 3/8 of the arc $BA$.
<li> Extend $FO$ to intersect the circle at a point $C$.
<li> Draw the line $CD$ and extend it to a point $E$ such that $DE$ equals the
circle's diameter.
</ol>
<p>
The line $OE$ is an approximate trisector of the angle $AOB$.
<h2>Error Analysis</h2>
<p>
<p>
Let $\alpha$ and $\beta$ be the sizes of the angles $AOB$ and $EOB$, respectively.
The angle $FOD$ equals $\alpha/8$ by the construction, therefore the
angle $FCD$, which is half the central angle $FOD$, is equal to
$\alpha/16$.
The triangle $DOC$ is isosceles, therefore the angle $ODC$ also equals $\alpha/16$.
<p>
In the triangle $OED$, let $x$ and $y$ be the sizes of the angles
$OED$ and $EOD$, respectively. Since the sum $x+y$ of the triangle's internal
angles equals the triangle's
external angle $ODC$, we have $x+y = \alpha/16$. Let us note, however,
that the angle $y$ equals $DOB$ minus $EOB$. Thus $y = 3\alpha/8 - \beta$,
whence $x = \beta - 5\alpha/16$.
<p>
In the triangle $OED$, the side $DE$ is twice the side $OD$ by the construction,
therefore the law of sines gives $\sin y = 2 \sin x$. Consequently,
$\sin(3\alpha/8 - \beta) = 2 \sin(\beta - 5\alpha/16)$.
Solving this for $\beta$ we arrive at:
\[
\beta
= \frac{5}{16} \alpha + \arctan \frac{\sin(a/16)}{2+\cos(a/16)}
= \frac{1}{3} \alpha - \frac{1}{2^{12}\cdot3^4} \alpha^3 + O(\alpha^5)
= \frac{1}{3} \alpha - \frac{1}{331776} \alpha^3 + O(\alpha^5).
\]
<p>
We see that the trisection error $e(\alpha) = \alpha/3 - \beta$ is given by:
\[
e(\alpha) = \frac{1}{48}\alpha - \arctan \frac{\sin(a/16)}{2+\cos(a/16)}.
\]
(This formula is also given in Jamison's article.)
The function $e(a)$ is monotonically increasing in $\alpha$.
The worst error on the interval $0 \le \alpha \le \pi/2$ is
$e(\pi/2)$ = 0.0000117 radians = 0.00067 degrees.
The worst error on the interval $0 \le \alpha \le \pi$ is
$e(\pi)$ = 0.000093756 radians = 0.00537 degrees.
Quite impressive!
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a> on
July 22, 2002.
<br>Cosmetic revisions on June 7, 2010.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html#trisections">list of trisections</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,219 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>An angle trisection</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>An angle trisection</h1>
<h4>
Construction attributed to C.&nbsp;R.&nbsp;Lindberg, as reported in<br>
Free Jamison, <i>Trisection Approximation</i>, American Mathematical Monthly,
vol.&nbsp;61, no.&nbsp;5, May 1954, pp.&nbsp;334&ndash;336.
</h4>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="700" height="400">
<param name="background" value="ffffff">
<param name="title" value="An angle trisection">
<param name="e[1]" value="O;point;fixed;200,200">
<param name="e[2]" value="A;point;fixed;200,350">
<param name="e[3]" value="C1;circle;radius;O,A;none;none;lightGray;none">
<param name="e[4]" value="B;point;circleSlider;C1,350,0;red">
<param name="e[5]" value="OA;line;connect;O,A;none;none;blue">
<param name="e[6]" value="OB;line;connect;O,B;none;none;blue">
<param name="e[7]" value="Dtmp;point;midpoint;A,B;none;none">
<param name="e[8]" value="D;point;cutoff;O,Dtmp,O,A">
<param name="e[9]" value="OD;line;connect;O,D;none;none;lightGray">
<param name="e[10]" value="C;point;extend;B,O,B,O">
<param name="e[11]" value="OC;line;connect;O,C;none;none;lightGray">
<param name="e[12]" value="CD;line;connect;C,D;none;none;green">
<param name="e[13]" value="E;point;extend;C,D,B,C">
<param name="e[14]" value="DE;line;connect;D,E;none;none;green">
<param name="e[15]" value="OE;line;connect;O,E;none;none;red">
<param name="e[16]" value="E';point;cutoff;O,E,O,A;none;none">
<param name="e[17]" value="p1;point;fixed;200,225;none;none">
<param name="e[18]" value="c1;circle;radius;O,p1;none;none;none;none">
<param name="e[19]" value="l1;line;chord;OB,c1;none;none;none">
<param name="e[20]" value="q1;point;first;l1;none;none">
<param name="e[21]" value="l2;line;chord;OE,c1;none;none;none">
<param name="e[22]" value="q2;point;first;l2;none;none">
<param name="e[23]" value="s1;sector;sector;O,q2,q1;none;none;black;orange">
<param name="e[24]" value="p2;point;fixed;200,225;none;none">
<param name="e[25]" value="c2;circle;radius;O,p2;none;none;none;none">
<param name="e[26]" value="l3;line;chord;OA,c2;none;none;none">
<param name="e[27]" value="q3;point;first;l3;none;none">
<param name="e[28]" value="l4;line;chord;OE,c2;none;none;none">
<param name="e[29]" value="q4;point;first;l4;none;none">
<param name="e[30]" value="s2;sector;sector;O,q3,q4;none;none;black;yellow">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $B$ to change the angle $AOB$
(but stay on the right half of the circle).<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
The red line $OE$ is an approximate trisector of the angle $AOB$.
</b>
</td></tr></table>
<h2>The construction</h2>
<p>
According to Jamison (see the reference at the top of this page)
the construction's main idea
comes from an unpublished work by C.&nbsp;R.&nbsp;Lindberg.
<p>
Consider the circular arc $AB$ centered at $O$, shown in the diagram above.
Assume the angle $AOB$ is between 0 and 180 degrees.
To trisect $AOB$, do:
<ol>
<li>
Extend $BO$ to intersect the circle at a point $C$.
<li>
Draw the bisector $OD$ of the angle $AOB$.
<li>
Draw the line $CD$ and extend it to a point $E$ such that $DE$ equals the
circle's diameter.
</ol>
<p>
The line $OE$ is an approximate trisector of the angle $AOB$.
<p>
Here is a heuristic explanation for why the construction works,
as explained by Jamison. The key lies
in the observation that (i) in the triangle $ODE$ the angles $O$ and $E$ are
&ldquo;small&rdquo;, and (ii) the side $ED$ is twice as long as the side $OD$.
Therefore from the law of sines we have $\sin(O)/\sin(E) = ED/OD = 2$,
which implies that the angle $O$ is approximately twice the angle $E$ in
the triangle $ODE$.
<p>
Let the measure of the angle $OED$ be $x$.
Then the triangle's external angle at $D$, that is the angle $ODC$, is the sum of
the internal angles $O$ and $E$, therefore it is approximately $3x$.
Therefore the angle $OCD$ is $3x$. Therefore the angle $BOD$ is $6x$.
Since the angle $E'OD$ is $2x$, we conclude that the angle $BOE'$ is $4x$.
Furthermore, since the angle $BOD$ is $6x$, the angle $BOA$ is $12x$. This shows
that $BOA$ is 3 times $BOE'$, as asserted.
<h2>Error Analysis</h2>
<p>
Let $\alpha$ and $\beta$ be the sizes of the angles $AOB$ and $EOB$, respectively.
The angle $DOB$ is half of $AOB$ by the construction, therefore it is equal to
$\alpha/2$. Consequently the angle $DCB$, which is half the
central angle $DOB$, equals $\alpha/4$.
The triangle $DOC$ is isosceles, therefore the angle $ODC$ also equals $\alpha/4$.
<p>
In the triangle $OED$, let $x$ and $y$ be the sizes of the angles
$OED$ and $EOD$, respectively. Since the sum $x+y$ of the triangle's internal
angles equals the triangle's
external angle $ODC$, we have $x+y = \alpha/4$. Let us note, however,
that the angle $y$ equals $DOB$ minus $EOB$. Thus $y = \alpha/2 - \beta$,
whence $x = \beta - \alpha/4$.
<p>
In the triangle $OED$, the side $DE$ is twice the side $OD$ by the construction,
therefore the law of sines gives $\sin y = 2 \sin x$. Consequently,
$\sin(\alpha/2 - \beta) = 2 \sin(\beta - \alpha/4)$. Solving this for $\beta$
we arrive at:
\[
\beta
= \frac{1}{4} \alpha + \arctan \frac{\sin(a/4)}{2+\cos(a/4)}
= \frac{1}{3} \alpha - \frac{1}{2^6\cdot3^4} \alpha^3 + O(\alpha^5)
= \frac{1}{3} \alpha - \frac{1}{5184} \alpha^3 + O(\alpha^5).
\]
<p>
We see that the trisection error $e(\alpha) = \alpha/3 - \beta$ is given by:
\[
e(\alpha) = \frac{1}{12}\alpha - \arctan \frac{\sin(a/4)}{2+\cos(a/4)}.
\]
(This formula is also given in Jamison's article.)
The function $e(a)$ is monotonically increasing.
The worst error on the interval $0 \le \alpha \le \pi/2$ is
$e(\pi/2)$ = 0.000757 radians = 0.0434 degrees.
The worst error on the interval $0 \le \alpha \le \pi$ is
$e(\pi)$ = 0.0063 radians = 0.361 degrees.
That's quite good for such a simple construction.
<h2>An interesting coincidence</h2>
<p>
The angle $\beta$ constructed by this method coincides <em>exactly</em>
with that of <a href="trisect-pllana.html">Pllana's construction</a>,
where $\beta$ is given as:
\[
\beta
= \arctan \frac
{\sin\frac{\alpha}{2} + 2\sin\frac{\alpha}{4}}
{\cos\frac{\alpha}{2} + 2\cos\frac{\alpha}{4}}.
\]
One way to verify that the seemingly different expressions
for $\beta$ are in fact identical,
is to compare their derivatives. In both cases we have:
\[
\frac{d\beta}{d\alpha} =
\frac{3(1 + \cos\frac{\alpha}{4})}{2(5 + 4\cos\frac{\alpha}{4})}.
\]
<h2>An extension</h2>
<p>
Although this construction is quite good as is, Jamison proceeds to give
<a href="trisect-jamison-ext.html">an extension of Lindberg's method</a>
which requires a bit more work but is substantially more accurate.
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a> on
July 22, 2002.<br>
Cosmetic revisions on June 7, 2010.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html#trisections">list of trisections</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,173 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>An angle trisection</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>An angle trisection</h1>
<h4>Construction due to
<a href="mailto:avniu66@hotmail.com">Avni Pllana</a></h4>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="450" height="260">
<param name="background" value="ffffff">
<param name="title" value="An angle trisection">
<param name="e[1]" value="O;point;fixed;210,225">
<param name="e[2]" value="A;point;fixed;410,225">
<param name="e[3]" value="cir1;circle;radius;O,A;none;none;none;none">
<param name="e[4]" value="B;point;circleSlider;cir1,0,0;red;red">
<param name="e[5]" value="OA;line;connect;O,A;none;none;blue">
<param name="e[6]" value="OB;line;connect;O,B;none;none;blue">
<param name="e[7]" value="arcAB;sector;sector;O,A,B;none;none;blue;none">
<param name="e[8]" value="pt1;point;angleBisector;A,O,B;none;none">
<param name="e[9]" value="C;point;cutoff;O,pt1,O,A">
<param name="e[10]" value="li1;line;connect;O,C;none;none;lightGray">
<param name="e[11]" value="M;point;midpoint;O,C">
<param name="e[12]" value="pt3;point;angleBisector;A,O,C;none;none">
<param name="e[13]" value="D;point;cutoff;O,pt3,O,A">
<param name="e[14]" value="li2;line;connect;O,D;none;none;lightGray">
<param name="e[15]" value="N;point;midpoint;M,D">
<param name="e[16]" value="MD;line;connect;M,D;none;none;cyan">
<param name="e[17]" value="li3;line;cutoff;O,N,O,A;none;none;red">
<!-- angle marker -->
<param name="e[18]" value="p1;point;fixed;240,225;none;none">
<param name="e[19]" value="c1;circle;radius;O,p1;none;none;none;none">
<param name="e[20]" value="l1;line;chord;OA,c1;none;none;none">
<param name="e[21]" value="q1;point;first;l1;none;none">
<param name="e[22]" value="l2;line;chord;O,N,c1;none;none;none">
<param name="e[23]" value="q2;point;first;l2;none;none">
<param name="e[24]" value="l3;line;chord;OB,c1;none;none;none">
<param name="e[25]" value="q3;point;first;l3;none;none">
<param name="e[26]" value="s1;sector;sector;O,q1,q2;none;none;black;orange">
<param name="e[27]" value="s2;sector;sector;O,q2,q3;none;none;black;yellow">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $B$ to change the angle $AOB$.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
The red line is an approximate trisector of the angle $AOB$.
</b>
</td></tr></table>
<h2>Construction</h2>
<p>
This approximate trisection, due to Avni Pllana, was announced
<a href="http://mathforum.org/kb/message.jspa?messageID=1084688">in a
message</a>
in the <code>geometry.puzzles</code> newsgroup on July&nbsp;23, 2003.
Scroll to the bottom of that page to view the related discussion thread.
<p>
Consider the angle $AOB$ given by the circular arc $AB$ centered at $O$,
as shown in the diagram above.
<ol>
<li>
Pick points $C$ and $D$ on the arc $AB$ so that $OC$ bisects the angle $AOB$
and $OD$ bisects the angle $AOC$.
<li>
Let $M$ be the midpoint of the line segment $OC$.
<li>
Let $N$ be the midpoint of the line segment $MD$.
</ol>
The line $ON$ is an approximate trisector of the angle $AOB$.
<h2>Error Analysis</h2>
<p>
Let $\alpha$ and $\beta$ be the sizes of the angles $AOB$ and $AON$,
respectively. One may verify that:
\[
\beta
= \arctan \frac
{\sin\frac{\alpha}{2} + 2\sin\frac{\alpha}{4}}
{\cos\frac{\alpha}{2} + 2\cos\frac{\alpha}{4}}
= \frac{1}{3}\alpha - \frac{1}{2^6\cdot3^4} \alpha^3 + O(\alpha^5)
= \frac{1}{3}\alpha - \frac{1}{5184} \alpha^3 + O(\alpha^5).
\]
<em>Hint:</em> Represent the points as complex numbers
in the polar form $re^{i\theta}$.
<p>
The error
$
\ds e(\alpha) = \frac{\alpha}{3} - \beta
$
increases monotonically with $\alpha$.
The worst error on the interval $0 \le \alpha \le \pi/2$ is
$e(\pi/2)$ = 0.000757 radians = 0.0434 degrees.
The worst error on the interval $0 \le \alpha \le \pi$ is
$e(\pi)$ = 0.00630 radians = 0.361 degrees.
That's quite good for such a simple construction.
<h2>An interesting coincidence</h2>
<p>
The angle $\beta$ constructed by this method coincides <em>exactly</em>
with that of <a href="trisect-jamison.html">Lindberg's construction</a>,
where $\beta$ is given as:
\[
\beta
= \frac{1}{4} \alpha + \arctan
\frac{\sin\frac{\alpha}{4}}{2+\cos\frac{\alpha}{4}}.
\]
One way to verify that the seemingly different expressions
for $\beta$ are in fact identical,
is to compare their derivatives. In both cases we have:
\[
\frac{d\beta}{d\alpha} =
\frac{3(1 + \cos\frac{\alpha}{4})}{2(5 + 4\cos\frac{\alpha}{4})}.
\]
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a>
on June 10, 2010.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html#trisections">list of trisections</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,152 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>An angle trisection</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>An angle trisection</h1>
<h4>
William R. Raiford, <i>An approximate trisection</i>,
American Mathematical Monthly,
vol.&nbsp;68, no.&nbsp;9, Nov 1961, p.&nbsp;917.
</h4>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="450" height="400">
<param name="background" value="ffffff">
<param name="title" value="An angle trisection">
<param name="e[1]" value="O;point;fixed;210,365">
<param name="e[2]" value="A;point;fixed;410,365">
<param name="e[3]" value="pt0;point;fixed;410,0;none;none">
<param name="e[4]" value="li0;line;connect;A,pt0;none;none;green">
<param name="e[5]" value="cir1;circle;radius;O,A;none;none;none;none">
<param name="e[6]" value="B;point;circleSlider;cir1,0,300;red;red">
<param name="e[7]" value="OA;line;connect;O,A;none;none;blue">
<param name="e[8]" value="OB;line;connect;O,B;none;none;blue">
<param name="e[9]" value="arcAB;sector;sector;O,A,B;none;none;blue;none">
<param name="e[10]" value="pt1;point;angleBisector;A,O,B;none;none">
<param name="e[11]" value="C;point;cutoff;O,pt1,O,A">
<param name="e[12]" value="OC;line;connect;O,C;none;none;lightGray">
<param name="e[13]" value="li1;line;connect;B,C;none;none;lightGray">
<param name="e[14]" value="li2;line;extend;B,C,B,C;none;none;lightGray">
<param name="e[15]" value="T;point;intersection;li0,li2">
<param name="e[16]" value="OT;line;connect;O,T;none;none;red">
<!-- angle marker -->
<param name="e[17]" value="p1;point;fixed;240,385;none;none">
<param name="e[18]" value="c1;circle;radius;O,p1;none;none;none;none">
<param name="e[19]" value="l1;line;chord;OA,c1;none;none;none">
<param name="e[20]" value="q1;point;first;l1;none;none">
<param name="e[21]" value="l2;line;chord;O,T,c1;none;none;none">
<param name="e[22]" value="q2;point;first;l2;none;none">
<param name="e[23]" value="s1;sector;sector;O,q1,q2;none;none;black;orange">
<!-- angle marker -->
<param name="e[24]" value="l3;line;chord;OB,c1;none;none;none">
<param name="e[25]" value="q3;point;first;l3;none;none">
<param name="e[26]" value="s2;sector;sector;O,q2,q3;none;none;black;yellow">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $B$ to change the angle $AOB$.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
The red line $OT$ is an approximate trisector of the angle $AOB$.
</b>
</td></tr></table>
<h2>Construction</h2>
<p>
The construction described in the article cited at the top of the page,
is quite straightforward. Consider the angle $AOB$ represented by the
circular arc $AB$ centered at $O$, as shown in the diagram above.
To trisect $AOB$ do:
<ol>
<li>
Erect a perpendicular to $OA$ at $A$ (shown in green).
<li>
Construct the bisector $OC$ of the angle $AOB$.
<li>
Connect $B$ to $C$ and extend to intersect the green line at a point $T$.
</ol>
The line $OT$ is an approximate trisector of the angle $AOB$.
<h2>Error Analysis</h2>
<p>
Let $\alpha$ and $\beta$ be the sizes of the angles $AOB$ and $AOT$,
respectively. One may verify that
\[
\beta
= \arctan \Big( \sin\alpha - (1 - \cos\alpha)
\cot \big( \frac{3}{4}\alpha \big) \Big)
= \frac{1}{3}\alpha + \frac{1}{2^3\cdot3^4} \alpha^3 + O(\alpha^5)
= \frac{1}{3}\alpha + \frac{1}{648} \alpha^3 + O(\alpha^5).
\]
<p>
The error
$
\ds e(\alpha) = \beta - \frac{\alpha}{3}
$
is monotonically increasing in $\alpha$.
The worst error on the interval $0 \le \alpha \le \pi/2$ is
$e(\pi/2)$ = 0.0063 radians = 0.361 degrees.
The worst error on the interval $0 \le \alpha \le \pi$ is
$e(\pi)$ = 0.06 radians = 3.435 degrees.
<p>
<span class="name">Raiford</span>, whose affiliation is given as IBM,
states that he has calculated
the error in increments of one degree in an IBM&nbsp;709. Computers
were novelties when that article was published.
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a>
on June 14, 2010.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html#trisections">list of trisections</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,399 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- fix buggy IE8, especially for mathjax -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>An angle trisection</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://userpages.umbc.edu/~rostamia/mathjax-config.js">
MathJax.Hub.Queue( function() {document.body.style.visibility="visible"} );
</script>
</head>
<body style="visibility:hidden">
<h1>An angle trisection</h1>
<h4>Construction by
<a href="mailto:mhs210@hotmail.com">Mark Stark</a>
</h4>
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="600" height="600">
<param name="background" value="ffffff">
<param name="title" value="An angle trisection">
<!-- The angle AOB -->
<param name="e[1]" value="O;point;fixed;300,300">
<param name="e[2]" value="A;point;fixed;585,300">
<param name="e[3]" value="C1;circle;radius;O,A;none;none;lightGray;none">
<param name="e[4]" value="B;point;circleSlider;C1,70,0;red;red">
<param name="e[5]" value="OA;line;connect;O,A;none;none;blue">
<param name="e[6]" value="OB;line;connect;O,B;none;none;blue">
<!-- The inner circle -->
<param name="e[7]" value="A';point;fixed;395,300">
<param name="e[8]" value="C2;circle;radius;O,A';none;none;lightGray;none">
<param name="e[9]" value="L1;line;chord;OB,C2;none;none;none">
<param name="e[10]" value="B';point;first;L1">
<param name="e[11]" value="A'B';line;connect;A',B';none;none;green">
<!-- Points E and D -->
<param name="e[12]" value="E;point;circleSlider;C2,600,150;red;red">
<param name="e[13]" value="C3;circle;radius;A',E;none;none;lightGray;none">
<param name="e[14]" value="L2;line;chord;A'B',C3;none;none;none">
<param name="e[15]" value="D;point;first;L2">
<param name="e[16]" value="L3;line;chord;D,E,C1;none;none;none">
<param name="e[17]" value="G;point;last;L3">
<param name="e[18]" value="EG;line;connect;E,G;none;none;lightGray">
<param name="e[19]" value="L4;line;chord;G,O,C1;none;none;none">
<param name="e[20]" value="T;point;last;L4">
<param name="e[21]" value="GT;line;connect;G,T;none;none;red">
<param name="e[22]" value="p1;point;fixed;325,300;none;none">
<param name="e[23]" value="c1;circle;radius;O,p1;none;none;none;none">
<param name="e[24]" value="l1;line;chord;OA,c1;none;none;none">
<param name="e[25]" value="q1;point;first;l1;none;none">
<param name="e[26]" value="l2;line;chord;O,T,c1;none;none;none">
<param name="e[27]" value="q2;point;first;l2;none;none">
<param name="e[28]" value="s1;sector;sector;O,q1,q2;none;none;black;orange">
<param name="e[29]" value="p2;point;fixed;325,300;none;none">
<param name="e[30]" value="c2;circle;radius;O,p2;none;none;none;none">
<param name="e[31]" value="l3;line;chord;O,T,c2;none;none;none">
<param name="e[32]" value="q3;point;first;l3;none;none">
<param name="e[33]" value="l4;line;chord;OB,c2;none;none;none">
<param name="e[34]" value="q4;point;first;l4;none;none">
<param name="e[35]" value="s2;sector;sector;O,q3,q4;none;none;black;yellow">
<param name="pivot" value="O">
</applet>
</td></tr>
<tr><td>
<b>
Drag the point $B$ to change the angle $AOB$
(but stay on the upper half of the semicircle).<br>
Drag the point &ldquo;$E$&rdquo; to change the radius of the circle
centered at $A'$. Note how little $G$ is affected by the choice of $E$.<br>
Press &ldquo;r&rdquo; to reset the diagram to its initial state.<br>
The red line ($O$T) is an approximate trisector of the angle $AOB$.
</b>
</td></tr></table>
<h2>Construction</h2>
<p>
This construction, due to Mark Stark, was announced
<a href="http://mathforum.org/kb/message.jspa?messageID=1088614">
in an message</a> in the <code>geometry.puzzles</code> newsgroup on
Jun 20, 2002.
Scroll to the bottom of that page to view the related discussion thread.
<p>
The construction is unusual
because one of the steps involves an arbitrary choice. It is interesting
that the result is quite insensitive to that choice.
<p>
Here I have paraphrased Mark's construction but
differences from the original are cosmetic. The error analysis is mine.
<p>
Consider the circular arc $AB$ on the circle $C$ centered at $O$,
shown in the diagram above.
Assume the angle $AOB$ is between 0 and 180 degrees.
To trisect $AOB$, do:
<ol>
<li>
Draw a circle $C'$ centered at $O$ with a radius 1/3&nbsp;$OA$.
Mark $A'$ and $B'$ its intersections with the line segments $OA$ and $OB$,
respectively.
<li>
Draw the line $A'B'$ (shown in green).
<li>
Draw a circle $C''$ centered at $A'$ with an arbitrary(!) radius.
The accuracy of the trisection will be affected by the choice
of the radius, albeit only slightly. Best results are obtained
when the angle $EA'D$ (see the next step) is close to one third
of the angle $AOB$.
<li>
Let $D$ be the intersection of $C''$ with the line segment $A'B'$.<br>
Let $E$ be the intersection of $C''$ with the $C'$, as shown.
<li>
Draw the line $ED$ and extend to the intersection point $G$ with the the
circle $C$.
<li>
Draw the diameter $GOT$.
</ol>
The line $OT$ is an approximate trisector of the angle $AOB$.
<h2>Error Analysis</h2>
<p>
In the diagram below, I have duplicated the previous diagram
and added the lines $OE$ and $EA'$ which are not needed in
the construction, but are needed for the error analysis.
<p>
You may zoom and translate the diagram to examine its details.
To zoom in, grab the point $B'$ with the mouse
and move it away from $O$. To translate,
grab $O$ and move it around. As always, type &ldquo;r&rdquo; to
reset the diagram to its initial state.
<table class="centered">
<tr><td align="center">
<applet code="Geometry" archive="Geometry.zip" width="600" height="600">
<param name="background" value="ffffff">
<param name="title" value="An angle trisection">
<!-- The angle AOB -->
<param name="e[1]" value="O;point;fixed;300,300">
<param name="e[2]" value="A;point;fixed;585,300">
<param name="e[3]" value="C1;circle;radius;O,A;none;none;lightGray;none">
<param name="e[4]" value="B;point;circleSlider;C1,70,0;red;red">
<param name="e[5]" value="OA;line;connect;O,A;none;none;blue">
<param name="e[6]" value="OB;line;connect;O,B;none;none;blue">
<!-- The inner circle -->
<param name="e[7]" value="A';point;fixed;395,300">
<param name="e[8]" value="C2;circle;radius;O,A';none;none;lightGray;none">
<param name="e[9]" value="L1;line;chord;OB,C2;none;none;none">
<param name="e[10]" value="B';point;first;L1">
<param name="e[11]" value="A'B';line;connect;A',B';none;none;green">
<!-- Points E and D -->
<param name="e[12]" value="E;point;circleSlider;C2,600,150;red;red">
<param name="e[13]" value="C3;circle;radius;A',E;none;none;lightGray;none">
<param name="e[14]" value="L2;line;chord;A'B',C3;none;none;none">
<param name="e[15]" value="D;point;first;L2">
<param name="e[16]" value="L3;line;chord;D,E,C1;none;none;none">
<param name="e[17]" value="G;point;last;L3">
<param name="e[18]" value="EG;line;connect;E,G;none;none;lightGray">
<param name="e[19]" value="L4;line;chord;G,O,C1;none;none;none">
<param name="e[20]" value="T;point;last;L4">
<param name="e[21]" value="GT;line;connect;G,T;none;none;red">
<param name="e[22]" value="p1;point;fixed;325,300;none;none">
<param name="e[23]" value="c1;circle;radius;O,p1;none;none;none;none">
<param name="e[24]" value="l1;line;chord;OA,c1;none;none;none">
<param name="e[25]" value="q1;point;first;l1;none;none">
<param name="e[26]" value="l2;line;chord;O,T,c1;none;none;none">
<param name="e[27]" value="q2;point;first;l2;none;none">
<param name="e[28]" value="s1;sector;sector;O,q1,q2;none;none;black;orange">
<param name="e[29]" value="p2;point;fixed;325,300;none;none">
<param name="e[30]" value="c2;circle;radius;O,p2;none;none;none;none">
<param name="e[31]" value="l3;line;chord;O,T,c2;none;none;none">
<param name="e[32]" value="q3;point;first;l3;none;none">
<param name="e[33]" value="l4;line;chord;OB,c2;none;none;none">
<param name="e[34]" value="q4;point;first;l4;none;none">
<param name="e[35]" value="s2;sector;sector;O,q3,q4;none;none;black;yellow">
<param name="e[36]" value="EA;;line;connect;E,A';none;none;lightGray">
<param name="e[37]" value="OE;;line;connect;O,E;none;none;lightGray">
<param name="pivot" value="O">
</applet>
</td></tr>
<tr><td>
<b>
To zoom in, grab the point $B'$ with the mouse
and move it away from $O$.<br>
To translate, grab $O$ and move it around.<br>
Type &ldquo;r&rdquo; to return to the initial state.
</b>
</td></tr></table>
<p>
Let $\alpha$ and $\beta$ be the sizes of the angles $AOB$ and $AOT$,
respectively. We will show that $\beta \approx \frac{1}{3}\alpha$.
<p>
The construction leaves the size of the circle $C''$ (centered at $A'$)
unspecified. We parametrize the circle by the position of the point
$E$ along the arc $A'B'$, or more precisely, by the value $\gamma$ of the
angle angle $B'A'E$.
Thus $\gamma=0$ when $E$ coincides with $B'$
and $\gamma=\alpha/2$ (easy to verify) when E coincides with $A'$.
<p>
Since the angles $B'A'E$ and $B'OE$ subtend the arc $B'E$ of the
circle $C'$, then the angle $B'OE$ is $2\gamma$. Therefore the angle
$EOA'$ is $\alpha - 2\gamma$. But $EOA'$ is the vertex angle of the
triangle $EOA'$, therefore the base angle $OEA'$ is $\frac{1}{2}(\pi - \alpha +
2\gamma)$.
<p>
In the isosceles triangle $DA'E$, the vertex angle is $\gamma$, therefore
the base angle $DEA'$ is $\frac{1}{2}(\pi - \gamma)$.
<p>
Putting the assertions of the two previous paragraphs together, we
calculate the angle $OED$:
\[
OED = OEA' - DEA' = \frac{1}{2}(3\gamma - \alpha)
\]
<p>
In the triangle $GOE$, we have just computed the angle at $E$ (because
$OED$ is the same as $OEG$). Let us write $x$ for the angle at $G$.
Then $x$ may be computed by applying the law of sines and noting
that the ratio of the sides $OG$ to $OE$ is 3. We get:
$3\sin x = \sin\frac{1}{2}(3\gamma-\alpha)$.
<p>
The external angle $EOT$ of the triangle $GOE$ equals the sum of the
remaining internal angles, that is:
\[
EOT = x + \frac{1}{2}(3\gamma-\alpha).
\]
On the other hand,
\[
EOT
= EOB' - TOB'
= EOB' - (A'OB' - A'OT)
= 2\gamma - (\alpha - \beta).
\]
We see then $x + \frac{1}{2}(3\gamma-\alpha) = 2\gamma - (\alpha - \beta)$,
whence $x = \beta + \gamma/2 - \beta/2$. This leads to the equation:
\[
3\sin\big(\beta + \frac{1}{2}\gamma - \frac{1}{2}\beta\big)
=
\sin\frac{1}{2}(3\gamma-\alpha),
\]
which we may solve for $\beta$:
\[
\beta =
\frac{1}{3}\alpha + \frac{1}{6}(\alpha-3\gamma)
-
\arcsin\bigg[
\frac{1}{3}\sin\Big(\frac{\alpha-3\gamma}{2} \Big)
\bigg]
\]
<p>
As expected, the constructed angle,
$\beta$, depends on the original angle $\alpha$ we well as the choice
of $\gamma$. Let us express this dependence as $\beta = \tau(\alpha,\gamma)$.
Expanding $\tau$ in power series we get:
\[
\beta = \tau(\alpha,\gamma)
= \frac{1}{3}\alpha
+ \frac{4}{3}\Big(\frac{\alpha-3\gamma}{6} \Big)^3
- \frac{4}{5}\Big(\frac{\alpha-3\gamma}{6} \Big)^7
+ O\bigg( \Big(\frac{\alpha-3\gamma}{6}\Big)^9 \bigg).
\]
The term with exponent 5 is absent in the series expansion; that's not a typo.
<h3>On the choice of $\gamma$</h3>
<p>
We see that $\tau(\alpha,\alpha/3) = \alpha/3$, that is,
the construction produces an <em>exact trisection</em>
with the choice $\gamma=\alpha/3$.
Of course, constructing such a $\gamma$
is equivalent to solving the original trisection problem, therefore
that is not an option. On the other hand, a constructible $\gamma$ that
comes close to $\alpha/3$ will serve just fine. The function $\tau$ is
not very sensitive to the variations of $\gamma$ as is evident from:
\[
\frac{\partial \tau(\alpha,\gamma)}{\partial \gamma}
=
\frac{1}{2} \bigg(
\frac{3\cos 3x}{\sqrt{9 - \sin^2 3x}} -1 \bigg),
\]
where I have let $x=(\alpha-3\gamma)/6$ to simplify the notation.
As noted above, best
results are achieved when $\gamma$ is close to $\alpha/3$. Even
with a not-so-optimal choice of $\gamma=\alpha/4$ we get $x=\alpha/24$.
With such a choice, the value of partial derivative in the range
$0 \le \alpha \le \pi/2$ does not exceed 0.01, indicating that
the value of the function is essentially independent of $\gamma$
on that range.
<p>
<b>An excellent choice</b> for $\gamma$ is obtained as follows.
In Step&nbsp;3 of the construction, first select the point $D$ on
the line segment $A'B'$ such that $A'D = \frac{1}{3} A'B'$.
Then draw the circle $C''$ with center $A'$ passing through $D$.
One may verify that this results in an angle $\gamma$ given by:
\[
\hat{\gamma} = \frac{1}{2} \alpha
- \arcsin\Big( \frac{1}{3} \sin\frac{\alpha}{2} \Big)
= \frac{1}{3} \alpha + \frac{1}{2\cdot3^4} \alpha^3 + O(\alpha^7).
\]
Then, the constructed angle is:
\[
\beta = \tau(\alpha,\hat{\gamma})
= \tau\bigg(\alpha, \frac{1}{2} \alpha
- \arcsin\Big( \frac{1}{3} \sin\frac{\alpha}{2} \Big)
\bigg)
= \frac{1}{3} \alpha - \frac{1}{2^4\cdot3^{13}} \alpha^9 +
O(\alpha^{13}).
\]
The construction error, $e(\alpha) = \frac{1}{3}\alpha-\beta$,
is monotone increasing. Since $e(\alpha) = O(\alpha^9)$,
we expect it to be very small.
Indeed, the worst error on the interval $0 \le \alpha \le \pi/2$ is
the incredibly small
$e(\pi/2)$ = 0.00000226 radians = 0.00013 degrees.
The worst error on the interval $0 \le \alpha \le \pi$ is
$e(\pi)$ = 0.00103 radians = 0.0592 degrees.
<p>
Despite its extraordinary accuracy, this is <em>not</em>
among my favorite trisection methods because the points $D$ and $E$ are
too close to each other for locating the point $G$ reliably. For practical
purposes, should there be such a need, I would much rather use a more
robust, albeit less accurate, method.
<hr width="60%">
<p>
<em>This applet was created by
<a href="http://userpages.umbc.edu/~rostamia">Rouben Rostamian</a>
using
<a href="http://aleph0.clarku.edu/~djoyce/home.html">David Joyce</a>'s
<a href="http://aleph0.clarkU.edu/~djoyce/java/Geometry/Geometry.html">Geometry
Applet</a> on
July 26, 2002.
<br>The error analysis was thoroughly revised and extensive
cosmetic changes were made on June 7, 2010.
</em>
<p>
<table width="100%">
<tr>
<td valign="top">Go to <a href="index.html#trisections">list of trisections</a></td>
<td align="right" style="width:200px;">
<a href="http://validator.w3.org/check?uri=referer">
<img src="/~rostamia/images/valid-html401.png" class="noborder" width="88" height="31" alt="Valid HTML"></a>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="/~rostamia/images/valid-css.png" class="noborder" width="88" height="31" alt="Valid CSS"></a>
</td></tr>
</table>
</body>
</html>

View File

@ -303,6 +303,7 @@ function jToG(
cmdr
function invisible(cname: string): boolean
if adapParams.config?.showall then return false
cname is '0' or cname is 'none'
function joyce2rgb(cname: string, backgroundRGB?: RGB): RGB
@ -378,16 +379,6 @@ classHandler: Record<JoyceClass, ClassHandler> :=
aux := name + 'aUx'
parts[0].push name
switch method
/free|fixed/
commands.push `${name} = (${args.scalar?.join ','})`
if method is 'fixed'
callbacks.push (api: AppletObject) => api.setFixed name, true
'perpendicular'
// Note only the two-point option implemented so far
unless args.subpoints return
[center, direction] := args.subpoints
// Note clockwise 90° rotation (3π/2) confirmed in Joyce source
commands.push `${name} = Rotate(${direction}, 3*pi/2, ${center})`
'angleDivider'
// Note doesn't yet handle plane argument
unless args.subpoints return
@ -406,6 +397,27 @@ classHandler: Record<JoyceClass, ClassHandler> :=
`${aux}4 = Rotate(${start}, ${aux}3/${n}, ${center})`
`${name} = Intersect(${destination}, Ray(${center}, ${aux}4))`
auxiliaries.push ...[2..4].map (i) => `${aux}${i}`
'extend'
unless args.subpoints then return
sp := args.subpoints
direction .= `UnitVector(Vector(${sp[0]},${sp[1]}))`
if args.line and (
not args.point or args.point[0] !== args.subpoints[0])
direction = `UnitVector(${args.line[0]})`
displacement := `Distance(${sp[2]}, ${sp[3]})*${direction}`
commands.push `${name} = Translate(${sp[1]}, ${displacement})`
'first'
unless args.subpoints then return
commands.push `${name} = ${args.subpoints[0]}`
/fixed|free/
commands.push `${name} = (${args.scalar?.join ','})`
if method is 'fixed'
callbacks.push (api: AppletObject) => api.setFixed name, true
'foot'
pt := args.subpoints
unless pt then return
commands.push
`${name} = ClosestPoint(Line(${pt[1]},${pt[2]}), ${pt[0]})`
'intersection'
// Checking Joyce source, means intersection of lines, not
// intersection of line segments
@ -413,6 +425,9 @@ classHandler: Record<JoyceClass, ClassHandler> :=
l1 := `Line(${args.subpoints[0]},${args.subpoints[1]})`
l2 := `Line(${args.subpoints[2]},${args.subpoints[3]})`
commands.push `${name} = Intersect(${l1},${l2})`
'last'
unless args.subpoints then return
commands.push `${name} = ${args.subpoints.at(-1)}`
'lineSegmentSlider'
segment .= args.line?[0]
unless segment
@ -424,35 +439,28 @@ classHandler: Record<JoyceClass, ClassHandler> :=
if args.scalar and args.scalar.length
callbacks.push (api: AppletObject) =>
api.setCoords name, ...args.scalar as XYZ
'first'
unless args.subpoints then return
commands.push `${name} = ${args.subpoints[0]}`
'last'
unless args.subpoints then return
commands.push `${name} = ${args.subpoints.at(-1)}`
'extend'
unless args.subpoints then return
sp := args.subpoints
direction .= `UnitVector(Vector(${sp[0]},${sp[1]}))`
if args.line and (
not args.point or args.point[0] !== args.subpoints[0])
direction = `UnitVector(${args.line[0]})`
displacement := `Distance(${sp[2]}, ${sp[3]})*${direction}`
commands.push `${name} = Translate(${sp[1]}, ${displacement})`
'vertex'
commands.push
`${name} = Vertex(${args.polygon?[0]},${args.scalar?[0]})`
'midpoint'
if args.line
commands.push `${name} = Midpoint(${args.line[0]})`
else
commands.push
`${name} = Midpoint(${args.point?[0]},${args.point?[1]})`
'foot'
'perpendicular'
// Note only the two-point option implemented so far
unless args.subpoints return
[center, direction] := args.subpoints
// Note clockwise 90° rotation (3π/2) confirmed in Joyce source
commands.push `${name} = Rotate(${direction}, 3*pi/2, ${center})`
'proportion'
pt := args.subpoints
unless pt then return
len := `Distance(${pt[2]},${pt[3]})*Distance(${pt[4]},${pt[5]})`
+ `/ Distance(${pt[0]},${pt[1]})`
direction := `UnitVector(Vector(${pt[6]}, ${pt[7]}))`
commands.push `${name} = Translate(${pt[6]}, ${len}*${direction})`
'vertex'
commands.push
`${name} = ClosestPoint(Line(${pt[1]},${pt[2]}), ${pt[0]})`
`${name} = Vertex(${args.polygon?[0]},${args.scalar?[0]})`
line: (name, method, args) =>
return := freshCommander()

View File

@ -1,4 +1,4 @@
export const flags = ['commands', 'color'] as const
export const flags = ['color', 'commands', 'showall'] as const
export type FlagType = (typeof flags)[number]
export type ConfigType = Partial<Record<FlagType, boolean>>

View File

@ -1,11 +1,8 @@
import {flags} from ./adapptypes.ts
console.log('arrived')
boxes := ['commands', 'color']
cache := await browser.storage.local.get boxes
console.log('Found', cache)
cache := await browser.storage.local.get flags
for each box of boxes
for each box of flags
checkbox := document.getElementById(box) as HTMLInputElement
unless checkbox then continue
checkbox.checked = cache[box] ?? false