["A", "B", "C", "D", "E", "F"] randRange(0, 5) randRange(1, 2) (START + SIZE) % 6 VERTICES[START] VERTICES[END] VERTICES[(START + 3) % 6] VERTICES[(END + 3) % 6] (function() { var startName = VERTICES[START]; var endName = VERTICES[END]; var notStart = "[" + _.without(VERTICES, startName).join("") + "]"; var notEnd = "[" + _.without(VERTICES, endName).join("") + "]"; var startAsFirst = startName + "G" + notStart; var startAsLast = notStart + "G" + startName; var endAsFirst = endName + "G" + notEnd; var endAsLast = notEnd + "G" + endName; var sharingStart = startAsFirst + "|" + startAsLast; var sharingEnd = endAsFirst + "|" + endAsLast; return "^\\s*" + sharingStart + "|" + sharingEnd + "\\s*$"; })() rand(-20, 20) 8 6.5 [30, 45, 135, 210, 225, 315] _.map(BASE_ANGLES, function(el) { return ((el + TILT) % 360) * PI / 180; }) _.map(ANGLES, function(el) { return [LENGTH * cos(el), LENGTH * sin(el)]; }) _.map(ANGLES, function(el) { return [INNER_LENGTH * cos(el), INNER_LENGTH * sin(el)]; })
init({ range: [[-10, 10], [-10, 10]], scale: 20 }); var dotStyle = { r: 0.2, fill: BLUE, stroke: "none" }; for (var i = 0; i < 6; i++) { line([0, 0], ENDPOINTS[i], { arrows: "->" }); circle(INNER_ENDPOINTS[i], dotStyle); label(INNER_ENDPOINTS[i], VERTICES[i], "above"); } var p1 = ENDPOINTS[START]; var p2 = ENDPOINTS[END]; var angle1 = atan2(p1[1], p1[0]) * 180 / PI; var angle2 = atan2(p2[1], p2[0]) * 180 / PI; graph.angle = arc([0, 0], LENGTH / 6, angle1, angle2, { stroke: RED }); graph.angle.hide(); label([0, 0], "G", "above"); circle([0, 0], dotStyle);

Name an angle vertical to `\angle ANGLE_STARTGANGLE_END`.

OPP_STARTGOPP_END
OPP_ENDGOPP_START

`\angle`

Vertical angles are formed at the intersection of two straight lines.

Name the angle opposite `\red{\angle ANGLE_STARTGANGLE_END}`.

The angle vertical to `\red{\angle ANGLE_STARTGANGLE_END}` is `\green{\angle OPP_STARTGOPP_END}`.

var p1 = ENDPOINTS[(START + 3) % 6]; var p2 = ENDPOINTS[(END + 3) % 6]; var angle1 = atan2(p1[1], p1[0]) * 180 / PI; var angle2 = atan2(p2[1], p2[0]) * 180 / PI; arc([0, 0], LENGTH / 6, angle1, angle2, { stroke: GREEN });

Name an angle adjacent to `\angle ANGLE_STARTGANGLE_END`.

`\angle` ADJ_ANGLES

Adjacent angles share a ray and have a common vertex, but do not overlap.

Name an angle that is next to `\red{\angle ANGLE_STARTGANGLE_END}`.

One angle adjacent to `\red{\angle ANGLE_STARTGANGLE_END}` is `\green{\angle ANGLE_STARTGVERTICES[(START + 5) % 6]}`.

var p1 = ENDPOINTS[(START + 5) % 6]; var p2 = ENDPOINTS[START]; var angle1 = atan2(p1[1], p1[0]) * 180 / PI; var angle2 = atan2(p2[1], p2[0]) * 180 / PI; arc([0, 0], LENGTH / 6, angle1, angle2, { stroke: GREEN });

Name an angle that forms a linear pair with `\angle ANGLE_STARTGANGLE_END`.

ANGLE_STARTGOPP_END
ANGLE_ENDGOPP_START
OPP_ENDGANGLE_START
OPP_STARTGANGLE_END

`\angle`

A linear pair is two adjacent angles that form a straight angle.

Name an angle that shares a ray with `\angle ANGLE_STARTGANGLE_END` and will add to `180^{\circ}`

One angle that forms a linear pair with `\red{\angle ANGLE_STARTGANGLE_END}` is `\green{\angle ANGLE_ENDGOPP_START}`.

var p1 = ENDPOINTS[END]; var p2 = ENDPOINTS[(START + 3) % 6]; var angle1 = atan2(p1[1], p1[0]) * 180 / PI; var angle2 = atan2(p2[1], p2[0]) * 180 / PI; arc([0, 0], LENGTH / 6, angle1, angle2, { stroke: GREEN });

First, identify `\red{\angle ANGLE_STARTGANGLE_END}`.

graph.angle.show();