randRange(-4, 4, 4) [EX - SX, EY - SY] _.map(_.range(6), function() { return {x: randRange(-4, 4), y: randRange(-4, 4)}; }) _.map(Geom.convexhull(POINTS), function(p) { return [p.x + SX, p.y + SY]; }) _.map(HULL, function(p) { return [p[0] + DX, p[1] + DY]; })

What is the image of the polygon below after the translation `T_{(DX, DY)}`?

graphInit({ range: 11, scale: 20, axisArrows: "<->", tickStep: 1, labelStep: 1, gridOpacity: 0.05, axisOpacity: 0.2, tickOpacity: 0.4, labelOpacity: 0.5 }); for (var i=0; i < HULL.length; i++) { line(HULL[i], HULL[(i+1) % HULL.length], { stroke: GRAY, strokeDasharray: "- " }); } addMouseLayer(); graph.points = _.map(HULL, function(point) { return addMovablePoint({ coord: point, visible: false }); }); graph.lines = []; for (var i=0; i < graph.points.length; i++) { graph.lines.push(addMovableLineSegment({ pointA: graph.points[i], pointZ: graph.points[(i+1) % graph.points.length], snapX: 1, snapY: 1})); } _.each(graph.lines, function(line) { line.onMove = function(dX, dY){ graph.updatePolygon(dX, dY); }}); graph.updatePolygon = function(dX, dY) { _.each(graph.points, function(point){ point.setCoord([point.coord[0] + dX, point.coord[1] + dY]); point.updateLineEnds(); }); graph.curPoints = _.map(graph.points, function(point){ return point.coord; }); } graph.showGuess = function() { _.each(graph.points, function(point) { point.remove(); }); _.each(graph.lines, function(line) { line.remove(); }); graph.points = _.map(graph.curPoints, function(point) { return addMovablePoint({ coord: point, visible: false }); }); graph.lines = []; for (var i=0; i < graph.points.length; i++) { graph.lines.push(addMovableLineSegment({ pointA: graph.points[i], pointZ: graph.points[(i+1) % graph.points.length], snapX: 1, snapY: 1})); } } graph.drawAnswer = function() { for (var i=0; i < TARGET.length; i++) { line(TARGET[i], TARGET[(i+1) % TARGET.length], { stroke: ORANGE }); } }
Drag the blue polygon to its image under the given translation.
KhanUtil.currentGraph.graph.curPoints
coordList = _.map(KhanUtil.currentGraph.graph.points, function(point){ return point.coord; }); return _.all(coordList, function(point) { return (point[0] === TARGET[_.indexOf(coordList, point)][0]) && (point[1] === TARGET[_.indexOf(coordList, point)][1]); });
KhanUtil.currentGraph.graph.curPoints = guess; KhanUtil.currentGraph.graph.showGuess();

A translation `T_{(a, b)}` moves points `a` units in the `x` direction (right if `a` is positive,left if `a` is negative) and `b` units in the `y` direction (up if `b` is positive, down if `b` is negative).

To see where a translation moved this polygon, pick one point and translate it. For example, what happens to `( HULL[0][0] , HULL[0][1] )` under this translation?
circle(HULL[0], { r: 0.2, fill: "black", stroke: "none" });

Under the translation `T_{(DX, DY)}`, `( HULL[0][0] , HULL[0][1] )` is translated to `( TARGET[0][0] , TARGET[0][1] )`. Where is the rest of the polygon translated?
circle(TARGET[0], { r: 0.2, fill: "black", stroke: "none" }); line(HULL[0], TARGET[0], { stroke: "black", arrows: "->"});

To get from `( HULL[0][0] , HULL[0][1] )` to `( TARGET[0][0] , TARGET[0][1] )`, we changed the x-coordinate by DX and the y-coordinate by DY. To translate the whole polygon, we need to do the same thing to all of its points.

The orange outline shows where the polygon ends up after the translation.
for (var i=0; i < TARGET.length; i++) { line(TARGET[i], TARGET[(i+1) % TARGET.length], { stroke: ORANGE }); }
randRange(-4, 4, 4) [EX - SX, EY - SY] _.map(_.range(6), function() { return {x: randRange(-4, 4), y: randRange(-4, 4)}; }) _.map(Geom.convexhull(POINTS), function(p) { return [p.x + SX, p.y + SY]; }) _.map(HULL, function(p) { return [p[0] + DX, p[1] + DY]; })

What was the translation applied to move the blue solid shape to the orange dashed shape?

graphInit({ range: 11, scale: 20, axisArrows: "<->", tickStep: 1, labelStep: 1, gridOpacity: 0.05, axisOpacity: 0.2, tickOpacity: 0.4, labelOpacity: 0.5 }); for (var i=0; i < HULL.length; i++) { line(HULL[i], HULL[(i+1) % HULL.length], { stroke: BLUE }); } for (var i=0; i < TARGET.length; i++) { line(TARGET[i], TARGET[(i+1) % TARGET.length], { stroke: ORANGE, strokeDasharray: "- " }); }
`{\LARGE T } \;(` DX `,` DY `)`

A translation `T_{(a, b)}` moves points a units in the x direction (right if a is positive, left if a is negative) and b units in the y direction (up if b is positive, down if b is negative).

To see what translation moved the blue polygon, pick one point and translate it. For example, what happened to `( HULL[0][0] , HULL[0][1] )` under this translation?
circle(HULL[0], { r: 0.2, fill: "black", stroke: "none" });

Under this translation, `( HULL[0][0] , HULL[0][1] )` was translated to `( TARGET[0][0] , TARGET[0][1] )`. What does this tell you about the translation used?
circle(TARGET[0], { r: 0.2, fill: "black", stroke: "none" }); line(HULL[0], TARGET[0], { stroke: "black", arrows: "->"});

To get from `( HULL[0][0] , HULL[0][1] )` to `( TARGET[0][0] , TARGET[0][1] )`, we changed the x-coordinate by DX and the y-coordinate by DY.

The translation used was `T_{(DX, DY)}`.