// Numbas version: finer_feedback_settings {"name": "Drag points to given Cartesian coordinates", "extensions": ["jsxgraph"], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "question_groups": [{"pickingStrategy": "all-ordered", "questions": [{"rulesets": {}, "variable_groups": [], "metadata": {"licence": "Creative Commons Attribution 4.0 International", "description": "

Drag points on a graph to the given Cartesian coordinates. There are points in each of the four quadrants and on each axis.

"}, "tags": ["cartesian coordinates", "drag points on a graph", "graphs", "taxonomy"], "functions": {"correctPoints": {"parameters": [], "language": "javascript", "definition": "var div = Numbas.extensions.jsxgraph.makeBoard('400px','400px',{boundingBox:[-11,11,11,-11],grid: true});\nvar board = div.board;\nquestion.board = board;\n\nvar a1 = Numbas.jme.unwrapValue(scope.variables.a1);\nvar a2 = Numbas.jme.unwrapValue(scope.variables.a2);\nvar b1 = Numbas.jme.unwrapValue(scope.variables.b1);\nvar b2 = Numbas.jme.unwrapValue(scope.variables.b2);\nvar c1 = Numbas.jme.unwrapValue(scope.variables.c1);\nvar c2 = Numbas.jme.unwrapValue(scope.variables.c2);\nvar d1 = Numbas.jme.unwrapValue(scope.variables.d1);\nvar d2 = Numbas.jme.unwrapValue(scope.variables.d2);\nvar e1 = Numbas.jme.unwrapValue(scope.variables.e1);\nvar e2 = Numbas.jme.unwrapValue(scope.variables.e2);\nvar f1 = Numbas.jme.unwrapValue(scope.variables.f1);\nvar f2 = Numbas.jme.unwrapValue(scope.variables.f2);\n\n\nvar a = board.create('point',[a1,a2],{name: 'A', size: 7, fillColor: 'limegreen' , strokeColor: 'yellow' , highlightFillColor: 'green', highlightStrokeColor: 'yellow', snapToGrid: true, showInfobox: true});\nvar b = board.create('point',[b1,b2],{name: 'B', size: 7, fillColor: 'limegreen' , strokeColor: 'yellow' , highlightFillColor: 'green', highlightStrokeColor: 'yellow', snapToGrid: true, showInfobox: true});\nvar c = board.create('point',[c1,c2],{name: 'C', size: 7, fillColor: 'limegreen' , strokeColor: 'yellow' , highlightFillColor: 'green', highlightStrokeColor: 'yellow', snapToGrid: true, showInfobox: true});\nvar d = board.create('point',[d1,d2],{name: 'D', size: 7, fillColor: 'limegreen' , strokeColor: 'yellow' , highlightFillColor: 'green', highlightStrokeColor: 'yellow', snapToGrid: true, showInfobox: true});\nvar e = board.create('point',[e1,e2],{name: 'E', size: 7, fillColor: 'limegreen' , strokeColor: 'yellow' , highlightFillColor: 'green', highlightStrokeColor: 'yellow', snapToGrid: true, showInfobox: true});\nvar f = board.create('point',[f1,f2],{name: 'F', size: 7, fillColor: 'limegreen' , strokeColor: 'yellow' , highlightFillColor: 'green', highlightStrokeColor: 'yellow', snapToGrid: true, showInfobox: true});\n\n/*\nquestion.signals.on('HTMLAttached',function(e) {\n ko.computed(function(){ \n var x = parseFloat(question.parts[0].gaps[0].display.studentAnswer());\n var y = parseFloat(question.parts[0].gaps[1].display.studentAnswer());\n if(!(isNaN(x) || isNaN(y)) && board.mode!=board.BOARD_MODE_DRAG) {\n a.moveTo([x,y],100);\n }\n });\n});\n*/\n\nreturn div;", "type": "html"}, "dragpoints": {"parameters": [], "language": "javascript", "definition": "var div = Numbas.extensions.jsxgraph.makeBoard('400px','400px',{boundingBox:[-11,11,11,-11],grid: true});\nvar board = div.board;\nquestion.board = board;\n\n//var x = Numbas.jme.unwrapValue(scope.variables.x);\n//var y = Numbas.jme.unwrapValue(scope.variables.y);\n\nvar a = board.create('point',[10,10],{name: 'A', size: 7, fillColor: 'blue' , strokeColor: 'lightblue' , highlightFillColor: 'lightblue', highlightStrokeColor: 'yellow', snapToGrid: true, showInfobox: false});\nvar b = board.create('point',[10,9],{name: 'B', size: 7, fillColor: 'blue' , strokeColor: 'lightblue' , highlightFillColor: 'lightblue', highlightStrokeColor: 'yellow',snapToGrid: true, showInfobox: false});\nvar c = board.create('point',[10,8],{name: 'C', size: 7, fillColor: 'blue' , strokeColor: 'lightblue' , highlightFillColor: 'lightblue', highlightStrokeColor: 'yellow',snapToGrid: true, showInfobox: false});\nvar d = board.create('point',[10,7],{name: 'D', size: 7, fillColor: 'blue' , strokeColor: 'lightblue' , highlightFillColor: 'lightblue', highlightStrokeColor: 'yellow',snapToGrid: true, showInfobox: false});\nvar e = board.create('point',[10,6],{name: 'E', size: 7, fillColor: 'blue' , strokeColor: 'lightblue' , highlightFillColor: 'lightblue', highlightStrokeColor: 'yellow',snapToGrid: true, showInfobox: false});\nvar f = board.create('point',[10,5],{name: 'F', size: 7, fillColor: 'blue' , strokeColor: 'lightblue' , highlightFillColor: 'lightblue', highlightStrokeColor: 'yellow',snapToGrid: true, showInfobox: false});\n\nquestion.points = {\n a:a,b:b,c:c,d:d,e:e,f:f\n}\n\na.on('drag',function(){\n Numbas.exam.currentQuestion.parts[0].gaps[0].display.studentAnswer(a.X());\n Numbas.exam.currentQuestion.parts[0].gaps[1].display.studentAnswer(a.Y());\n});\nb.on('drag',function(){\n Numbas.exam.currentQuestion.parts[1].gaps[0].display.studentAnswer(b.X());\n Numbas.exam.currentQuestion.parts[1].gaps[1].display.studentAnswer(b.Y());\n});\nc.on('drag',function(){\n Numbas.exam.currentQuestion.parts[2].gaps[0].display.studentAnswer(c.X());\n Numbas.exam.currentQuestion.parts[2].gaps[1].display.studentAnswer(c.Y());\n});\nd.on('drag',function(){\n Numbas.exam.currentQuestion.parts[3].gaps[0].display.studentAnswer(d.X());\n Numbas.exam.currentQuestion.parts[3].gaps[1].display.studentAnswer(d.Y());\n});\ne.on('drag',function(){\n Numbas.exam.currentQuestion.parts[4].gaps[0].display.studentAnswer(e.X());\n Numbas.exam.currentQuestion.parts[4].gaps[1].display.studentAnswer(e.Y());\n});\nf.on('drag',function(){\n Numbas.exam.currentQuestion.parts[5].gaps[0].display.studentAnswer(f.X());\n Numbas.exam.currentQuestion.parts[5].gaps[1].display.studentAnswer(f.Y());\n});\n\n/*\nquestion.signals.on('HTMLAttached',function(e) {\n ko.computed(function(){ \n var x = parseFloat(question.parts[0].gaps[0].display.studentAnswer());\n var y = parseFloat(question.parts[0].gaps[1].display.studentAnswer());\n if(!(isNaN(x) || isNaN(y)) && board.mode!=board.BOARD_MODE_DRAG) {\n a.moveTo([x,y],100);\n }\n });\n});\n*/\n\nreturn div;\n\n", "type": "html"}}, "name": "Drag points to given Cartesian coordinates", "ungrouped_variables": ["x", "y", "a1", "a2", "b1", "b2", "c1", "c2", "d1", "d2", "e1", "e2", "e3", "f1", "f2"], "parts": [{"variableReplacementStrategy": "originalfirst", "gaps": [{"notationStyles": ["plain", "en", "si-en"], "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "correctAnswerStyle": "plain", "mustBeReducedPC": 0, "minValue": "{a1}", "scripts": {}, "marks": 1, "allowFractions": false, "mustBeReduced": false, "type": "numberentry", "correctAnswerFraction": false, "maxValue": "{a1}"}, {"notationStyles": ["plain", "en", "si-en"], "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "correctAnswerStyle": "plain", "mustBeReducedPC": 0, "minValue": "{a2}", "scripts": {}, "marks": 1, "allowFractions": false, "mustBeReduced": false, "type": "numberentry", "correctAnswerFraction": false, "maxValue": "{a2}"}], "showCorrectAnswer": true, "showFeedbackIcon": true, "type": "gapfill", "prompt": "

{dragpoints()}

\n

Move the points as follows:

\n

A to $(\\var{a1},\\var{a2})$.

", "variableReplacements": [], "scripts": {"mark": {"script": "console.log(this.question.points);\nthis.question.points.a.setAttribute({fillColor: this.credit==1 ? 'green' : 'red'});\n", "order": "after"}}, "marks": 0}, {"variableReplacementStrategy": "originalfirst", "gaps": [{"notationStyles": ["plain", "en", "si-en"], "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "correctAnswerStyle": "plain", "mustBeReducedPC": 0, "minValue": "{b1}", "scripts": {}, "marks": 1, "allowFractions": false, "mustBeReduced": false, "type": "numberentry", "correctAnswerFraction": false, "maxValue": "{b1}"}, {"notationStyles": ["plain", "en", "si-en"], "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "correctAnswerStyle": "plain", "mustBeReducedPC": 0, "minValue": "{b2}", "scripts": {}, "marks": 1, "allowFractions": false, "mustBeReduced": false, "type": "numberentry", "correctAnswerFraction": false, "maxValue": "{b2}"}], "showCorrectAnswer": true, "showFeedbackIcon": true, "type": "gapfill", "prompt": "

B to $(\\var{b1},\\var{b2})$.

\n

", "variableReplacements": [], "scripts": {"mark": {"script": "console.log(this.question.points);\nthis.question.points.b.setAttribute({fillColor: this.credit==1 ? 'green' : 'red'});\n", "order": "after"}}, "marks": 0}, {"variableReplacementStrategy": "originalfirst", "gaps": [{"notationStyles": ["plain", "en", "si-en"], "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "correctAnswerStyle": "plain", "mustBeReducedPC": 0, "minValue": "{c1}", "scripts": {}, "marks": 1, "allowFractions": false, "mustBeReduced": false, "type": "numberentry", "correctAnswerFraction": false, "maxValue": "{c1}"}, {"notationStyles": ["plain", "en", "si-en"], "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "correctAnswerStyle": "plain", "mustBeReducedPC": 0, "minValue": "{c2}", "scripts": {}, "marks": 1, "allowFractions": false, "mustBeReduced": false, "type": "numberentry", "correctAnswerFraction": false, "maxValue": "{c2}"}], "showCorrectAnswer": true, "showFeedbackIcon": true, "type": "gapfill", "prompt": "

C to $(\\var{c1},\\var{c2})$.

\n

", "variableReplacements": [], "scripts": {"mark": {"script": "console.log(this.question.points);\nthis.question.points.c.setAttribute({fillColor: this.credit==1 ? 'green' : 'red'});\n", "order": "after"}}, "marks": 0}, {"variableReplacementStrategy": "originalfirst", "gaps": [{"notationStyles": ["plain", "en", "si-en"], "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "correctAnswerStyle": "plain", "mustBeReducedPC": 0, "minValue": "{d1}", "scripts": {}, "marks": 1, "allowFractions": false, "mustBeReduced": false, "type": "numberentry", "correctAnswerFraction": false, "maxValue": "{d1}"}, {"notationStyles": ["plain", "en", "si-en"], "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "correctAnswerStyle": "plain", "mustBeReducedPC": 0, "minValue": "{d2}", "scripts": {}, "marks": 1, "allowFractions": false, "mustBeReduced": false, "type": "numberentry", "correctAnswerFraction": false, "maxValue": "{d2}"}], "showCorrectAnswer": true, "showFeedbackIcon": true, "type": "gapfill", "prompt": "

D to $(\\var{d1},\\var{d2})$.

\n

", "variableReplacements": [], "scripts": {"mark": {"script": "console.log(this.question.points);\nthis.question.points.d.setAttribute({fillColor: this.credit==1 ? 'green' : 'red'});\n", "order": "after"}}, "marks": 0}, {"variableReplacementStrategy": "originalfirst", "gaps": [{"notationStyles": ["plain", "en", "si-en"], "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "correctAnswerStyle": "plain", "mustBeReducedPC": 0, "minValue": "{e1}", "scripts": {}, "marks": 1, "allowFractions": false, "mustBeReduced": false, "type": "numberentry", "correctAnswerFraction": false, "maxValue": "{e1}"}, {"notationStyles": ["plain", "en", "si-en"], "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "correctAnswerStyle": "plain", "mustBeReducedPC": 0, "minValue": "{e2}", "scripts": {}, "marks": 1, "allowFractions": false, "mustBeReduced": false, "type": "numberentry", "correctAnswerFraction": false, "maxValue": "{e2}"}], "showCorrectAnswer": true, "showFeedbackIcon": true, "type": "gapfill", "prompt": "

E to $(\\var{e1},\\var{e2})$.

", "variableReplacements": [], "scripts": {"mark": {"script": "console.log(this.question.points);\nthis.question.points.e.setAttribute({fillColor: this.credit==1 ? 'green' : 'red'});", "order": "after"}}, "marks": 0}, {"variableReplacementStrategy": "originalfirst", "gaps": [{"notationStyles": ["plain", "en", "si-en"], "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "correctAnswerStyle": "plain", "mustBeReducedPC": 0, "minValue": "{f1}", "scripts": {}, "marks": 1, "allowFractions": false, "mustBeReduced": false, "type": "numberentry", "correctAnswerFraction": false, "maxValue": "{f1}"}, {"notationStyles": ["plain", "en", "si-en"], "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "correctAnswerStyle": "plain", "mustBeReducedPC": 0, "minValue": "{f2}", "scripts": {}, "marks": 1, "allowFractions": false, "mustBeReduced": false, "type": "numberentry", "correctAnswerFraction": false, "maxValue": "{f2}"}], "showCorrectAnswer": true, "showFeedbackIcon": true, "type": "gapfill", "prompt": "

F to $(\\var{f1},\\var{f2})$.

\n

", "variableReplacements": [], "scripts": {"mark": {"script": "console.log(this.question.points);\nthis.question.points.f.setAttribute({fillColor: this.credit==1 ? 'green' : 'red'});", "order": "after"}}, "marks": 0}], "variablesTest": {"maxRuns": 100, "condition": ""}, "variables": {"f2": {"description": "", "templateType": "anything", "name": "f2", "definition": "random(-10..10 except 0)", "group": "Ungrouped variables"}, "e2": {"description": "", "templateType": "anything", "name": "e2", "definition": "0", "group": "Ungrouped variables"}, "a1": {"description": "", "templateType": "anything", "name": "a1", "definition": "random(-10..-1)", "group": "Ungrouped variables"}, "d2": {"description": "", "templateType": "anything", "name": "d2", "definition": "random(1..10)", "group": "Ungrouped variables"}, "b2": {"description": "", "templateType": "anything", "name": "b2", "definition": "random(1..10)", "group": "Ungrouped variables"}, "c2": {"description": "", "templateType": "anything", "name": "c2", "definition": "random(-10..-1)", "group": "Ungrouped variables"}, "d1": {"description": "", "templateType": "anything", "name": "d1", "definition": "random(-10..-1)", "group": "Ungrouped variables"}, "e3": {"description": "", "templateType": "anything", "name": "e3", "definition": "random(-10..10 except 0)", "group": "Ungrouped variables"}, "y": {"description": "", "templateType": "anything", "name": "y", "definition": "2", "group": "Ungrouped variables"}, "a2": {"description": "", "templateType": "anything", "name": "a2", "definition": "random(-10..-1)", "group": "Ungrouped variables"}, "f1": {"description": "", "templateType": "anything", "name": "f1", "definition": "0", "group": "Ungrouped variables"}, "c1": {"description": "", "templateType": "anything", "name": "c1", "definition": "random(1..10)", "group": "Ungrouped variables"}, "b1": {"description": "", "templateType": "anything", "name": "b1", "definition": "random(1..9)", "group": "Ungrouped variables"}, "e1": {"description": "", "templateType": "anything", "name": "e1", "definition": "random(-10..10 except 0)", "group": "Ungrouped variables"}, "x": {"description": "", "templateType": "anything", "name": "x", "definition": "1", "group": "Ungrouped variables"}}, "extensions": ["jsxgraph"], "type": "question", "preamble": {"js": "", "css": ""}, "advice": "

Coordinates are given as $(x\\text{-coordinate},y\\text{-coordinate})$. So, for example $(2,5)$ has $x$-coordinate $= 2$ and $y$-coordinate$= 5$.

\n

Plot the first coordinate ($x$-coordinate) against the horizontal axis and then plot the second coordinate ($y$-coordinate) against the vertical axis.

\n

{correctPoints()}

", "statement": "

Move the points to the required coordinates on the graph.

", "contributors": [{"name": "Christian Lawson-Perfect", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/7/"}, {"name": "Bradley Bush", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/1521/"}, {"name": "Xiaodan Leng", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/2146/"}]}]}], "contributors": [{"name": "Christian Lawson-Perfect", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/7/"}, {"name": "Bradley Bush", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/1521/"}, {"name": "Xiaodan Leng", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/2146/"}]}