Permalink
Fetching contributors…
Cannot retrieve contributors at this time
322 lines (269 sloc) 14.7 KB
<!DOCTYPE html>
<html data-require="math graphie graphie-helpers graphie-geometry math-format">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Solving similar triangles 2</title>
<script data-main="../local-only/main.js" src="../local-only/require.js"></script>
</head>
<body>
<div class="exercise">
<div class="problems">
<div id="side-a">
<div class="vars" data-ensure="ANGLE < 45">
<var id="HEIGHT_A">randRange(1, 10)</var>
<var id="HEIGHT_B">HEIGHT_A + randRange(1, 20)</var>
<var id="SIDE_B">randRange(1, 10)</var>
<var id="SIDE_A">SIDE_B * HEIGHT_A / (HEIGHT_B - HEIGHT_A)</var>
<var id="LABELS">["x", HEIGHT_A, SIDE_B, HEIGHT_B]</var>
<var id="ANGLE">atan(HEIGHT_A / SIDE_A) * 180 / PI</var>
<var id="TRI_A">new Triangle([0, 0], [ANGLE, 90, 90 - ANGLE], 50 * (SIDE_A / (SIDE_A + SIDE_B)) * HEIGHT_A / HEIGHT_B, {})</var>
<var id="TRI_B">function(){
var trA = new Triangle([0, 0], [ANGLE, 90, 90 - ANGLE], 50, {});
trA.labels = { "points" : ["A", "D", "E"] };
return trA;
}()
</var>
</div>
<p>
Given that:<br>
<code>
\quad\begin{eqnarray}
\overline{BC} &amp;=&amp; <var>HEIGHT_A</var> \\
\overline{BD} &amp;=&amp; <var>SIDE_B</var> \\
\overline{DE} &amp;=&amp; <var>HEIGHT_B</var> \\
\overline{AB} &amp;=&amp; x \\
\end{eqnarray}
</code>
</p>
<p class="question">What is the value of <code>x</code>?</p>
<div class="solution"><var>SIDE_A</var></div>
<div class="hints" data-apply="appendContents">
<div>
<p><code>\overline{AB} : \overline{BC} = \dfrac{x}{<var>HEIGHT_A</var>}</code></p>
<p><code>\overline{AD} : \overline{DE} = \dfrac{x + <var>SIDE_B</var>}{<var>HEIGHT_B</var>}</code></p>
</div>
<p><code>
\dfrac{x}{<var>HEIGHT_A</var>} = \dfrac{x + <var>SIDE_B</var>}{<var>HEIGHT_B</var>}
</code></p>
<p><code>
<var>HEIGHT_B</var> \times x = <var>HEIGHT_A</var> \times (x + <var>SIDE_B</var>)
</code></p>
<p><code>
<var>HEIGHT_B</var>x = <var>coefficient(HEIGHT_A)</var>x + <var>HEIGHT_A * SIDE_B</var>
</code></p>
<p><code><var>plus(HEIGHT_B - HEIGHT_A + "x")</var> = <var>HEIGHT_A * SIDE_B</var></code></p>
<p data-if="HEIGHT_B - HEIGHT_A !== 1" ><code>
x = <var>fractionReduce(HEIGHT_A * SIDE_B, HEIGHT_B - HEIGHT_A)</var>
</code></p>
</div>
</div>
<div id="height-a">
<div class="vars">
<var id="SIDE_A">randRange(1, 10)</var>
<var id="SIDE_B">randRange(1, 10)</var>
<var id="HEIGHT_B">randRange(1, SIDE_A + SIDE_B)</var>
<var id="HEIGHT_A">HEIGHT_B * SIDE_A / (SIDE_A + SIDE_B)</var>
<var id="GCD">getGCD(SIDE_A + SIDE_B, HEIGHT_B)</var>
<var id="LABELS">[SIDE_A, "x", SIDE_B, HEIGHT_B]</var>
<var id="ANGLE">atan(HEIGHT_A / SIDE_A) * 180 / PI</var>
<var id="TRI_A">new Triangle([0, 0], [ANGLE, 90, 90 - ANGLE], 50 * (SIDE_A / (SIDE_A + SIDE_B)) * HEIGHT_A / HEIGHT_B, {})</var>
<var id="TRI_B">function(){
var trA = new Triangle([0, 0], [ANGLE, 90, 90 - ANGLE], 50, {});
trA.labels = { "points" : ["A", "D", "E"] };
return trA;
}()
</var>
</div>
<p>
Given that:<br>
<code>
\quad\begin{eqnarray}
\overline{AB} &amp;=&amp; <var>SIDE_A</var> \\
\overline{BD} &amp;=&amp; <var>SIDE_B</var> \\
\overline{DE} &amp;=&amp; <var>HEIGHT_B</var> \\
\overline{BC} &amp;=&amp; x
\end{eqnarray}
</code>
</p>
<p class="question">What is the value of <code>x</code>?</p>
<div class="solution"><var>HEIGHT_A</var></div>
<div class="hints" data-apply="appendContents">
<div>
<p><code>\overline{AB} : \overline{BC} = \dfrac{<var>SIDE_A</var>}{x}</code></p>
<p><code>
\overline{AD} : \overline{DE} = \dfrac{<var>SIDE_A</var> + <var>SIDE_B</var>}{<var>HEIGHT_B</var>}
= <var>fraction(SIDE_A + SIDE_B, HEIGHT_B)</var>
<span data-if="GCD !== 1">= <var>fractionReduce(SIDE_A + SIDE_B, HEIGHT_B)</var></span>
</code></p>
</div>
<p><code>
\dfrac{<var>SIDE_A</var>}{x} = <var>fractionReduce(SIDE_A + SIDE_B, HEIGHT_B)</var>
</code></p>
<p><code>
<var>SIDE_A</var> <span data-if="HEIGHT_B !== GCD">\times <var>HEIGHT_B / GCD</var></span>
= <var>(SIDE_A + SIDE_B) / GCD</var> \times x
</code></p>
<p><code><var>SIDE_A * HEIGHT_B / GCD</var> = <var>coefficient((SIDE_A + SIDE_B) / GCD)</var>x</code></p>
<p><code>x = <var>fractionReduce(SIDE_A * HEIGHT_B, SIDE_A + SIDE_B)</var></code></p>
</div>
</div>
<div id="side-b">
<div class="vars" data-ensure="ANGLE > 20 && ANGLE < 50">
<var id="SIDE_A">randRange(1, 10)</var>
<var id="HEIGHT_A">randRange(1, SIDE_A)</var>
<var id="HEIGHT_B">HEIGHT_A + randRange(1, 10)</var>
<var id="SIDE_B">SIDE_A * (HEIGHT_B - HEIGHT_A) / HEIGHT_A</var>
<var id="GCD">getGCD(SIDE_A, HEIGHT_A)</var>
<var id="LABELS">[SIDE_A, HEIGHT_A, "x", HEIGHT_B]</var>
<var id="ANGLE">atan(HEIGHT_A / SIDE_A) * 180 / PI</var>
<var id="TRI_A">new Triangle([0, 0], [ANGLE, 90, 90 - ANGLE], 50 * (SIDE_A / (SIDE_A + SIDE_B)) * HEIGHT_A / HEIGHT_B, {})</var>
<var id="TRI_B">function(){
var trA = new Triangle([0, 0], [ANGLE, 90, 90 - ANGLE], 50, {});
trA.labels = { "points" : ["A", "D", "E"] };
return trA;
}()
</var>
</div>
<p>
Given that:<br>
<code>
\quad\begin{eqnarray}
\overline{AB} &amp;=&amp; <var>SIDE_A</var> \\
\overline{BC} &amp;=&amp; <var>HEIGHT_A</var> \\
\overline{DE} &amp;=&amp; <var>HEIGHT_B</var> \\
\overline{BD} &amp;=&amp; x
\end{eqnarray}
</code>
</p>
<p class="question">What is the value of <code>x</code>?</p>
<div class="solution"><var>SIDE_B</var></div>
<div class="hints" data-apply="appendContents">
<div>
<p><code>
\overline{AB} : \overline{BC} = <var>fraction(SIDE_A, HEIGHT_A)</var>
<span data-if="GCD !== 1 || HEIGHT_A === 1">= <var>fractionReduce(SIDE_A, HEIGHT_A)</var></span>
</code></p>
<p><code>\overline{AD} : \overline{DE} = \dfrac{<var>SIDE_A</var> + x}{<var>HEIGHT_B</var>}</code></p>
</div>
<p><code>
\dfrac{<var>SIDE_A</var> + x}{<var>HEIGHT_B</var>} = <var>fractionReduce(SIDE_A, HEIGHT_A)</var>
</code></p>
<p><code>
<span data-if="HEIGHT_A !== GCD"><var>HEIGHT_A / GCD</var> \times (</span>
<var>SIDE_A</var> + x
<span data-if="HEIGHT_A !== GCD">)</span>
= <var>HEIGHT_B</var> \times <var>SIDE_A / GCD</var>
</code></p>
<p><code>
<var>HEIGHT_A * SIDE_A / GCD</var> + <var>coefficient(HEIGHT_A / GCD)</var>x = <var>HEIGHT_B * SIDE_A / GCD</var>
</code></p>
<p><code><var>coefficient(HEIGHT_A / GCD)</var>x = <var>(HEIGHT_B * SIDE_A - HEIGHT_A * SIDE_A) / GCD</var></code></p>
<p data-if="HEIGHT_A / GCD !== 1"><code>x = <var>fractionReduce(HEIGHT_B * SIDE_A - HEIGHT_A * SIDE_A, HEIGHT_A)</var></code></p>
</div>
</div>
<div id="height-b">
<div class="vars" data-ensure="ANGLE < 45">
<var id="SIDE_A">randRange(1, 10)</var>
<var id="SIDE_B">randRange(1, 10)</var>
<var id="HEIGHT_A">randRange(1, SIDE_A)</var>
<var id="HEIGHT_B">(SIDE_A + SIDE_B) * HEIGHT_A / SIDE_A</var>
<var id="GCD">getGCD(SIDE_A, HEIGHT_A)</var>
<var id="LABELS">[SIDE_A, HEIGHT_A, SIDE_B, "x"]</var>
<var id="ANGLE">atan(HEIGHT_A / SIDE_A) * 180 / PI</var>
<var id="TRI_A">new Triangle([0, 0], [ANGLE, 90, 90 - ANGLE], 50 * (SIDE_A / (SIDE_A + SIDE_B)) * HEIGHT_A / HEIGHT_B, {})</var>
<var id="TRI_B">function(){
var trA = new Triangle([0, 0], [ANGLE, 90, 90 - ANGLE], 50, {});
trA.labels = { "points" : ["A", "D", "E"] };
return trA;
}()
</var>
</div>
<p>
Given that:<br>
<code>
\quad\begin{eqnarray}
\overline{AB} &amp;=&amp; <var>SIDE_A</var> \\
\overline{BC} &amp;=&amp; <var>HEIGHT_A</var> \\
\overline{BD} &amp;=&amp; <var>SIDE_B</var> \\
\overline{DE} &amp;=&amp; x
\end{eqnarray}
</code>
</p>
<p class="question">What is the value of <code>x</code>?</p>
<div class="solution"><var>HEIGHT_B</var></div>
<div class="hints" data-apply="appendContents">
<div>
<p><code>
\overline{AB} : \overline{BC} = <var>fraction(SIDE_A, HEIGHT_A)</var>
<span data-if="GCD !== 1 || HEIGHT_A === 1">= <var>fractionReduce(SIDE_A, HEIGHT_A)</var></span>
</code></p>
<p><code>\overline{AD} : \overline{DE} = \dfrac{<var>SIDE_A</var> + <var>SIDE_B</var>}{x}
= \dfrac{<var>SIDE_A + SIDE_B</var>}{x}
</code></p>
</div>
<p><code><var>fractionReduce(SIDE_A, HEIGHT_A)</var> = \dfrac{<var>SIDE_A + SIDE_B</var>}{x}</code></p>
<p><code>
<var>SIDE_A / GCD</var> \times x =
<span data-if="HEIGHT_A !== GCD"><var>HEIGHT_A / GCD</var> \times </span>
<var>SIDE_A + SIDE_B</var>
</code></p>
<p><code>
<var>coefficient(SIDE_A / GCD)</var>x = <var>HEIGHT_A * (SIDE_A + SIDE_B) / GCD</var>
</code></p>
<p data-ensure="SIDE_A !== GCD"><code>
x = <var>fraction(HEIGHT_A * (SIDE_A + SIDE_B) / GCD, SIDE_A / GCD)</var>
<span data-if="getGCD(HEIGHT_A * (SIDE_A + SIDE_B) / GCD, SIDE_A / GCD) !== 1">
= <var>fractionReduce(HEIGHT_A * (SIDE_A + SIDE_B), SIDE_A)</var>
</span>
</code></p>
</div>
</div>
</div>
<div class="problem">
<div class="graphie" id="triangles">
var tri_range = TRI_B.boundingRange(1);
init({
range: [[tri_range[0][0], tri_range[0][1]],
[tri_range[1][0] - 0.2, tri_range[1][1]]],
scale: 400 / (tri_range[0][1] - tri_range[0][0])
})
style({
strokeWidth: 1,
stroke: KhanUtil.BLACK
});
var x_max = TRI_B.boundingRange()[0][1];
var y_max = TRI_B.boundingRange()[1][1];
var line_x = x_max * SIDE_A / (SIDE_A + SIDE_B);
var line_y = y_max * HEIGHT_A / HEIGHT_B;
var square = (tri_range[0][1] - tri_range[0][0]) / 36;
rect(x_max - square, 0, square, square);
rect(line_x - square, 0, square, square);
style({
strokeWidth: 2,
stroke: KhanUtil.BLUE
});
TRI_A.draw();
TRI_B.draw();
TRI_B.drawLabels();
style({
color: "black"
});
label([line_x, 0], "B", "below");
label([line_x, line_y], "C", "above");
label([line_x/2, 0], LABELS[0], "below");
label([line_x, line_y/2], LABELS[1], "right");
label([(SIDE_A + SIDE_B/2) * x_max / (SIDE_A + SIDE_B), 0], LABELS[2], "below");
label([x_max, y_max/2], LABELS[3], "right");
</div>
</div>
<div class="hints">
<p><code>\triangle ABC</code> and <code>\triangle ADE</code> both have a right angle and share <code>\angle BAC</code>.</p>
<p>Therefore <code>\triangle ABC</code> and <code>\triangle ADE</code> are similar triangles.</p>
<p>
Therefore, the ratio <code>\overline{AB} : \overline{BC}</code>
is equal to the ratio <code>\overline{AD} : \overline{DE}</code>.
</p>
</div>
</div>
</body>
</html>