randFromArray([ "SSS", "SAS", "SAA", "ASA", "SSA", "SSA", "AAA" ])
{
"SSS": $._("Side-Side-Side"),
"SAS": $._("Side-Angle-Side"),
"SAA": $._("Side-Angle-Angle"),
"ASA": $._("Angle-Side-Angle"),
"SSA": $._("Side-Side-Angle"),
"AAA": $._("Angle-Angle-Angle")
}[ TYPE ]
randomTriangleAngles.triangle()
5 + random() * 2
randRange( 0, 1 ) === 1 ? true : false
{ "SSS": "Yes", "SAS": "Yes", "SAA": "Yes", "ASA": "Yes", "SSA": "No", "AAA": "No" }[ TYPE ]
new Triangle( [ 0, 0 ], ANGLES, SCALE, {} )
randRange( 0, 360 )
Is NAME a triangle congruency
postulate?
Answer the question by clicking and dragging the points
below to see how many different triangles you can
construct. If you can only construct congruent triangles, then the
NAME postulate is true. The NAME
postulate is not true if you can construct two or more
different triangles using the given information.
Your triangle can be anywhere. There is no need to line
up the two triangles.
init({
range: [ [ -6.2, 6.2 ], [ -5.9, 6.5 ] ]
});
addMouseLayer();
initCongruence({ triangle: TRIANGLE, type: TYPE, reflected: REFLECTED });
TRIANGLE.rotate( ROTATION );
style({ stroke: "#b1c9f5", "stroke-width": 5 });
TRIANGLE.translate([
-5 - Math.min(TRIANGLE.points[0][0], TRIANGLE.points[1][0], TRIANGLE.points[2][0]),
6 - Math.max(TRIANGLE.points[0][1], TRIANGLE.points[1][1], TRIANGLE.points[2][1])
]);
path( [ kline.midpoint( TRIANGLE.sides[ 2 ] ), TRIANGLE.points[2], TRIANGLE.points[1], TRIANGLE.points[0], kline.midpoint( TRIANGLE.sides[ 2 ] ) ] );
addTriangleDecorations( TRIANGLE, TYPE );
[
$( "#solutionarea" ).find( "input:checked" ).val(),
interactiveTriangle.points[0].coord,
interactiveTriangle.points[1].coord,
interactiveTriangle.points[2].coord,
interactiveTriangle.points[3].coord
]
var saved = $.map( new Array( 4 ), function( el, n ) {
return [ interactiveTriangle.points[ n ].coord ];
});
$.map( guess.slice( 1 ), function( el, n ) {
interactiveTriangle.points[ n ].setCoord( el );
});
interactiveTriangle.update();
var isTriangle = interactiveTriangle.isTriangle;
var isCongruent = abs( getDistance( guess[1], guess[2] ) - TRIANGLE.sideLengths[ 0 ] ) < 0.001
&& abs( getDistance( guess[2], guess[3] ) - TRIANGLE.sideLengths[ 1 ] ) < 0.001
&& abs( getDistance( guess[3], guess[4] ) - TRIANGLE.sideLengths[ 2 ] ) < 0.001;
$.map( saved, function( el, n ) {
interactiveTriangle.points[ n ].setCoord( el );
});
interactiveTriangle.update();
if ( guess[0] == null ) {
return "";
} else if ( guess[0] !== ANSWER ) {
return false;
} else if ( !isTriangle ) {
return $._("Your answer is almost correct, but you havent constructed a triangle.");
} else if ( ANSWER === "No" && isCongruent ) {
return $._("Your answer is almost correct, but the two triangles are congruent. Prove your answer by trying to construct an incongruent triangle.");
} else {
return true;
}
$.map( guess.slice( 1 ), function( el, n ) {
interactiveTriangle.points[ n ].setCoord( el );
});
interactiveTriangle.update();
$( "#solutionarea" ).find( "input:checked" ).prop( 'checked', false );
if ( guess[0] != null ) {
$( "#solutionarea" ).find( "input[value=" + guess[0] + "]" ).prop( 'checked', true );
}
To be a congruency postulate, there must be one, and only one, way to make a triangle
that's the same as the original triangle—except for being moved, rotated, or reflected.
With the constraints of NAME, there is exactly one way to make a triangle.
NAME is a congruency postulate. Be sure to construct the congruent triangle and think
about why you're only able to construct the triangle in one way.
With the constraints of NAME, there is more than one way to construct a triangle. See if you can find both ways.
Both of these triangles have the same adjacent Side, Side, and Angle, but they are not congruent:
var triangle = new Triangle( [ 0, 0 ], ANGLES, SCALE, {} );
triangle.rotate( -ANGLES[1] );
init({ range: triangle.boundingRange( 0.4 ) });
addMouseLayer();
style({ stroke: "#b1c9f5", "stroke-width": 5 });
path( [ kline.midpoint( triangle.sides[ 2 ] ), triangle.points[2], triangle.points[1], triangle.points[0], kline.midpoint( triangle.sides[ 2 ] ) ] );
addTriangleDecorations( triangle, TYPE );
KhanUtil.currentGraph = $( "div#congruent-triangles" ).data().graphie
var points = [
[
TRIANGLE.sideLengths[ 1 ] - cos( ( 180 - ( 180 - ANGLES[ 0 ] ) - ANGLES[ 2 ] ) * PI / 180 ) * TRIANGLE.sideLengths[ 0 ],
-sin( ( 180 - ( 180 - ANGLES[ 0 ] ) - ANGLES[ 2 ] ) * PI / 180 ) * TRIANGLE.sideLengths[ 0 ]
],
[ TRIANGLE.sideLengths[ 1 ], 0 ],
[ 0, 0 ]
];
var triangle = new Triangle( [], [], 0, {}, points );
init({ range: triangle.boundingRange( 0.4 ) });
addMouseLayer();
style({ stroke: "#b1c9f5", "stroke-width": 5 });
path( [ kline.midpoint( triangle.sides[ 2 ] ), triangle.points[2], triangle.points[1], triangle.points[0], kline.midpoint( triangle.sides[ 2 ] ) ] );
addTriangleDecorations( triangle, TYPE );
KhanUtil.currentGraph = $( "div#congruent-triangles" ).data().graphie
Because we can create two triangles that are not congruent, we can show by counterexample that
Side-Side-Angle is not a congruency postulate. Be sure to construct the incongruent triangle above to prove it.
With the constraints of NAME, there is more than one way to construct a triangle. See if you can find some different ways.
Both of these triangles have the same three angles, but they are not congruent (just similar):
style({ stroke: "#b1c9f5", "stroke-width": 5 });
init({ range: TRIANGLE.boundingRange( 0.4 ) });
addMouseLayer();
style({ stroke: "#b1c9f5", "stroke-width": 5 });
path( [ kline.midpoint( TRIANGLE.sides[ 2 ] ), TRIANGLE.points[2], TRIANGLE.points[1], TRIANGLE.points[0], kline.midpoint( TRIANGLE.sides[ 2 ] ) ] );
addTriangleDecorations( TRIANGLE, TYPE );
KhanUtil.currentGraph = $( "div#congruent-triangles" ).data().graphie
var triangle = new Triangle( [ 0, 0 ], ANGLES, SCALE - 4, {} );
triangle.rotate( ROTATION );
style({ stroke: "#b1c9f5", "stroke-width": 5 });
init({ range: triangle.boundingRange( 0.4 ) });
addMouseLayer();
style({ stroke: "#b1c9f5", "stroke-width": 5 });
path( [ kline.midpoint( triangle.sides[ 2 ] ), triangle.points[2], triangle.points[1], triangle.points[0], kline.midpoint( triangle.sides[ 2 ] ) ] );
addTriangleDecorations( triangle, TYPE );
KhanUtil.currentGraph = $( "div#congruent-triangles" ).data().graphie
Because we can create triangles that are not congruent, we can show by counterexample that
Angle-Angle-Angle is not a congruency postulate. Be sure to construct an incongruent triangle above to prove it.