Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

301 lines (263 sloc) 15.142 kb
<!DOCTYPE html>
<html data-require="math graphie word-problems subhints">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Points, lines, and planes</title>
<script src="../khan-exercise.js"></script>
</head>
<body>
<div class="exercise">
<div class="vars">
<var id="TILT">randRange(-100, 100) / 150</var>
<var id="TILT2">randRange(-100, 100) / 500</var>
<var id="A">randFromArray(["A", "F", "K", "U"])</var>
<var id="B">randFromArray(["B", "G", "L", "V"])</var>
<var id="C">randFromArray(["C", "H", "M", "W"])</var>
<var id="D">randFromArray(["D", "I", "N", "X"])</var>
<var id="E">randFromArray(["E", "J", "O", "Y"])</var>
<var id="R">randFromArray(["R", "S", "T", "P"])</var>
</div>
<p class="question"></p>
<div class="problem">
<div class="graphie">
init({
range: [ [-1, 15], [-5, 8] ],
scale: [ 30, 30 ]
});
// plane
path([
[6 + (0 - 6) * cos(TILT) - (0 - 2) * sin(TILT), 2 + (0 - 6) * sin(TILT) + (0 - 2) * cos(TILT)],
[6 + (10 - 6) * cos(TILT) - (0 - 2) * sin(TILT), 2 + (10 - 6) * sin(TILT) + (0 - 2) * cos(TILT)],
[6 + (12 - 6) * cos(TILT) - (4 - 2) * sin(TILT), 2 + (12 - 6) * sin(TILT) + (4 - 2) * cos(TILT)],
[6 + (2 - 6) * cos(TILT) - (4 - 2) * sin(TILT), 2 + (2 - 6) * sin(TILT) + (4 - 2) * cos(TILT)],
true
]);
style({ arrows: "-&gt;" }, function() {
// line in the plane
line([6 + (3 - 6)* cos(TILT+TILT2) - (3 - 2)* sin(TILT+TILT2), 2 + ( 3 - 6 ) * sin(TILT+TILT2) + ( 3 - 2 ) * cos(TILT+TILT2)],
[6 + (9 - 6)* cos(TILT+TILT2) - (1 - 2)* sin(TILT+TILT2), 2 + ( 9 - 6 ) * sin(TILT+TILT2) + ( 1 - 2 ) * cos(TILT+TILT2)]);
// line in the plane (opposite direction hack to get double-headed arrow)
line([6 + (9 - 6)* cos(TILT+TILT2) - (1 - 2)* sin(TILT+TILT2), 2 + ( 9 - 6 ) * sin(TILT+TILT2) + ( 1 - 2 ) * cos(TILT+TILT2)],
[6 + (3 - 6)* cos(TILT+TILT2) - (3 - 2)* sin(TILT+TILT2), 2 + ( 3 - 6 ) * sin(TILT+TILT2) + ( 3 - 2 ) * cos(TILT+TILT2)]);
// perpendicular line (top)
line([6 + (6 - 6)* cos(TILT) - (2 - 2)* sin(TILT), 2 + ( 6 - 6 ) * sin(TILT) + ( 2 - 2 ) * cos(TILT)],
[6 + (6 - 6)* cos(TILT) - (6 - 2)* sin(TILT), 2 + ( 6 - 6 ) * sin(TILT) + ( 6 - 2 ) * cos(TILT)]);
// Perpendicular line (bottom)
line([6 + (6 - 6)* cos(TILT) - (0 - 2)* sin(TILT), 2 + ( 6 - 6 ) * sin(TILT) + ( 0 - 2 ) * cos(TILT)],
[6 + (6 - 6)* cos(TILT) - (-3 - 2)* sin(TILT), 2 + ( 6 - 6 ) * sin(TILT) + ( -3 - 2 ) * cos(TILT)]);
});
// dashed line behind the plane
style({ strokeDasharray: "- " }, function() {
line([6 + (6 - 6)* cos(TILT) - (2 - 2)* sin(TILT), 2 + ( 6 - 6 ) * sin(TILT) + ( 2 - 2 ) * cos(TILT)],
[6 + (6 - 6)* cos(TILT) - (0 - 2)* sin(TILT), 2 + ( 6 - 6 ) * sin(TILT) + ( 0 - 2 ) * cos(TILT)]);
});
var r = randRange(0, 100) / 150;
var theta = randRange(-314, 314) / 100;
// points
style({ r: 0.15, stroke: "none" }, function() {
circle([6 + (4 - 6)* cos(TILT+TILT2) - (8/3 - 2)* sin(TILT+TILT2), 2 + ( 4 - 6 ) * sin(TILT+TILT2) + ( 8/3 - 2 ) * cos(TILT+TILT2)], { fill: PINK });
circle([6, 2], { fill: BLUE });
circle([6 + (8 - 6)* cos(TILT+TILT2) - (4/3 - 2)* sin(TILT+TILT2), 2 + ( 8 - 6 ) * sin(TILT+TILT2) + ( 4/3 - 2 ) * cos(TILT+TILT2)], { fill: GREEN });
circle([6 + (6 - 6)* cos(TILT) - (-2 - 2)* sin(TILT), 2 + ( 6 - 6 ) * sin(TILT) + ( -2 - 2 ) * cos(TILT)], { fill: ORANGE });
circle([6 + (17/6 + r*cos(theta) - 6)* cos(TILT) - (1.4 + r*sin(theta) - 2)* sin(TILT), 2 + ( 17/6 + r*cos(theta) - 6 ) * sin(TILT) + ( 1.4 + r*sin(theta) - 2 ) * cos(TILT)], { fill: "purple" });
});
label([6 + (4 - 6)* cos(TILT+TILT2) - (8/3 - 2)* sin(TILT+TILT2), 2 + ( 4 - 6 ) * sin(TILT+TILT2) + ( 8/3 - 2 ) * cos(TILT+TILT2)], A, "above right" );
label([6.1, 2], B, "above right");
label([6 + (8 - 6)* cos(TILT+TILT2) - (4/3 - 2)* sin(TILT+TILT2), 2 + ( 8 - 6 ) * sin(TILT+TILT2) + ( 4/3 - 2 ) * cos(TILT+TILT2)], C, "above right" );
label([6 + (6 - 6)* cos(TILT) - (-2 - 2)* sin(TILT), 2 + ( 6 - 6 ) * sin(TILT) + ( -2 - 2 ) * cos(TILT)], D, "right" );
label([6 + (17/6 + r*cos(theta) - 6)* cos(TILT) - (1.4 + r*sin(theta) - 2)* sin(TILT), 2 + ( 17/6 + r*cos(theta) - 6 ) * sin(TILT) + ( 1.4 + r*sin(theta) - 2 ) * cos(TILT)], E, "below" );
label([6 + (9.2 - 6)* cos(TILT+TILT2) - (1 - 2)* sin(TILT+TILT2), 2 + ( 9.2 - 6 ) * sin(TILT+TILT2) + ( 1 - 2 ) * cos(TILT+TILT2)], "\\ell", "right");
label([6 + (12.1 - 6)* cos(TILT) - (4 - 2)* sin(TILT), 2 + ( 12.1 - 6 ) * sin(TILT) + ( 4 - 2 ) * cos(TILT)], "\\mathcal{" + R + "}", "right");
</div>
</div>
<div class="problems">
<div id="name-plane">
<p class="question">
What is another way to name plane <code>\mathcal{<var>R</var>}</code>?
</p>
<div class="solution" data-type="set">
<div class="set-sol" data-type="text"><var>A + B + E</var></div>
<div class="set-sol" data-type="text"><var>A + C + E</var></div>
<div class="set-sol" data-type="text"><var>A + E + B</var></div>
<div class="set-sol" data-type="text"><var>A + E + C</var></div>
<div class="set-sol" data-type="text"><var>B + A + E</var></div>
<div class="set-sol" data-type="text"><var>B + C + E</var></div>
<div class="set-sol" data-type="text"><var>B + E + A</var></div>
<div class="set-sol" data-type="text"><var>B + E + C</var></div>
<div class="set-sol" data-type="text"><var>C + A + E</var></div>
<div class="set-sol" data-type="text"><var>C + B + E</var></div>
<div class="set-sol" data-type="text"><var>C + E + A</var></div>
<div class="set-sol" data-type="text"><var>C + E + B</var></div>
<div class="set-sol" data-type="text"><var>E + A + B</var></div>
<div class="set-sol" data-type="text"><var>E + A + C</var></div>
<div class="set-sol" data-type="text"><var>E + B + A</var></div>
<div class="set-sol" data-type="text"><var>E + B + C</var></div>
<div class="set-sol" data-type="text"><var>E + C + A</var></div>
<div class="set-sol" data-type="text"><var>E + C + B</var></div>
<div class="input-format">
<p>Plane <span class="entry"></span></p>
</div>
</div>
<div class="hints">
<div>
<p>Planes can be named with three <a href="#" class="show-definition" data-definition="noncollinear">noncollinear</a> points.</p>
<div class="definition" id="noncollinear">
Noncollinear points are points that are not on the same line.
</div>
</div>
<p>
Find any three points in the plane <code>\mathcal{<var>R</var>}</code> that are
not on the same line and list them in any order.
</p>
<p>
For example, we can write <code>\mathcal{<var>R</var>}</code> as plane
<code><var>A + B + E</var></code>, plane <code><var>A + C + E</var></code>,
or plane <code><var>B + E + C</var></code>.
</p>
</div>
</div>
<div id="line-name">
<div class="vars">
<var id="SOLUTION">randFromArray([
"\\overleftrightarrow{" + A + B + "}",
"\\overleftrightarrow{" + A + C + "}",
"\\overleftrightarrow{" + B + A + "}",
"\\overleftrightarrow{" + B + C + "}",
"\\overleftrightarrow{" + C + A + "}",
"\\overleftrightarrow{" + C + B + "}"
])</var>
<var id="INCORRECT_1">randFromArray([
"\\overleftrightarrow{" + A + "}",
"\\overleftrightarrow{" + B + "}",
"\\overleftrightarrow{" + C + "}"
])</var>
<var id="INCORRECT_2">randFromArray([
"\\overline{" + A + B + "}",
"\\overline{" + B + A + "}",
"\\overline{" + C + B + "}",
"\\overline{" + B + C + "}",
"\\overline{" + C + A + "}",
"\\overline{" + A + C + "}"
])</var>
<var id="INCORRECT_3">randFromArray([
"\\overleftrightarrow{" + E + C + "}",
"\\overleftrightarrow{" + C + E + "}",
"\\overleftrightarrow{" + D + A + "}",
"\\overleftrightarrow{" + D + B + "}",
"\\overleftrightarrow{" + D + C + "}",
"\\overleftrightarrow{" + A + D + "}"
])</var>
</div>
<p class="question">What is another way to name line <code>\ell</code>?</p>
<div class="solution"><code><var>SOLUTION</var></code></div>
<ul class="choices">
<li><code><var>INCORRECT_1</var></code></li>
<li><code><var>INCORRECT_2</var></code></li>
<li><code><var>INCORRECT_3</var></code></li>
<li><code>\overleftrightarrow{<var>A + B + C</var>}</code></li>
</ul>
<div class="hints">
<p>Lines are named using any two points on the line. The order doesn't matter.</p>
<p>The points must have the <code>\leftrightarrow</code> above because we're
naming a line, not a ray or a segment.</p>
<p>Another way to name line <code>\ell</code> is <code><var>SOLUTION</var></code>.</p>
</div>
</div>
<div id="collinear-3">
<div class="vars">
<var id="YES">$._("Yes")</var>
<var id="NO">$._("No")</var>
<var id="POINTS,SOLUTION">randFromArray([
[[A, B, C], true],
[[A, B, D], false],
[[A, C, B], true],
[[A, C, E], false],
[[B, A, C], true],
[[B, C, A], true],
[[B, E, C], false],
[[C, A, B], true],
[[C, A, D], false],
[[C, B, A], true],
[[C, B, E], false],
[[E, C, A], false]
])</var>
</div>
<p class="question">Are the points <var>toSentence(POINTS)</var> collinear?</p>
<div class="solution"><var>SOLUTION ? YES : NO</var></div>
<ul class="choices" data-category="true">
<li><var>YES</var></li>
<li><var>NO</var></li>
</ul>
<div class="hints">
<p>Collinear means that they lie on the same line.</p>
<p>Can you draw a straight line through points <var>toSentence(POINTS)</var>?</p>
<p data-if="SOLUTION">Yes, points <var>toSentence(POINTS)</var> are collinear.</p>
<p data-else="">No, points <var>toSentence(POINTS)</var> are not collinear.</p>
</div>
</div>
<div id="collinear-2">
<div class="vars">
<var id="YES">$._("Yes")</var>
<var id="NO">$._("No")</var>
<var id="POINTS">shuffle([A, B, C, D, E], 2)</var>
</div>
<p class="question">Are the points <var>toSentence(POINTS)</var> collinear?</p>
<div class="solution"><var>YES</var></div>
<ul class="choices" data-category="true">
<li><var>YES</var></li>
<li><var>NO</var></li>
</ul>
<div class="hints">
<p>Through any two points, there is exactly one line.</p>
<p>Points can be collinear even if the line isn't drawn in the figure.</p>
<p>Can you draw a straight line through points <var>toSentence(POINTS)</var>?
Actually, can you draw a straight line through any two points?</p>
<p>Yes, points <var>toSentence(POINTS)</var> are collinear.</p>
</div>
</div>
<div id="coplanar">
<div class="vars">
<var id="YES">$._("Yes")</var>
<var id="NO">$._("No")</var>
<var id="POINTS,SOLUTION,COPLANAR">randFromArray([
[[A, B, C, E], true, []],
[[A, B, D, E], false, [A, B, E]],
[[A, C, D], true, []],
[[A, C, D, E], false, [A, C, E]],
[[B, A, C], true, []],
[[B, C, A, E], true, []],
[[E, C, D, A], false, [E, C, A]],
[[B, E, D, C], false, [B, E, C]],
[[C, B, D, E], false, [C, B, E]],
[[C, D, A], true, []],
[[E, D, A], true, []]
])</var>
</div>
<p class="question">Are the points <var>toSentence(POINTS)</var> coplanar?</p>
<p class="solution"><var>SOLUTION ? YES : NO</var></p>
<ul class="choices" data-category="true">
<li><var>YES</var></li>
<li><var>NO</var></li>
</ul>
<div class="hints">
<p>Coplanar points are points that all lie on the same plane.</p>
<p>Can a flat surface pass through all the points without bending?</p>
<p data-if="!SOLUTION">
No, any flat surface that includes three of the points won't include the fourth.
For example, points <var>toSentence(COPLANAR)</var> are in plane
<code>\mathcal{<var>R</var>}</code>, but point <var>D</var> is not.
</p>
<p data-else-if="POINTS.length === 4">
Yes, points <var>toSentence(POINTS)</var> all lie within a single
flat surface. In this case, plane <code>\mathcal{<var>R</var>}</code>.
</p>
<p data-else="">
Yes, there is always at least one flat surface that passes through
any three points.
</p>
</div>
</div>
</div>
</div>
</body>
</html>
Jump to Line
Something went wrong with that request. Please try again.