Question
I have this code to implement a Graham's Scan algorithm using JSXGraph and this part of the code to draw a polygon on a board
I have this code to implement a Graham's Scan algorithm using JSXGraph and this part of the code to draw a polygon on a board using a set of points.
This is the code:
/***************** Do not alter, unless required! ***************/ | |
var boardParams = { boundingbox: [-0.2,50,50,-0.2], | |
grid :true, | |
axis: false, | |
showCopyright:false, | |
showNavigation:false, | |
}; | |
var getMouseCoords = function(e, i) | |
{ | |
var cPos = board.getCoordsTopLeftCorner(e, i), | |
absPos = JXG.getPosition(e, i), | |
dx = absPos[0] - cPos[0], | |
dy = absPos[1] - cPos[1]; | |
return new JXG.Coords(JXG.COORDS_BY_SCREEN, [dx, dy], board); | |
}; | |
/*********************************************************************/ | |
/* The Graham's scan function */ | |
function findConvexHull(board) | |
{ | |
var N = 0, P = {}; | |
for(var el in board.objects) | |
if(board.objects[el].elType == 'point') | |
{ | |
P[N] = board.objects[el]; | |
N++; | |
} | |
// sort the point set P; to obtain the x-coordinate of 'p', simply use 'p.X()' and similarly you can use 'p.Y()' for the y-coordinate | |
// run Graham's scan to obtain the convex hull points in some order (clockwise/anticlokwise) | |
// draw line segments between the convex hull points to obtain the final convex polygon; to draw line segment you can simply | |
// use --> board.create('segment',[p1,p2],{fillColor:'green',strokeColor:'green'}); where p1,p2 are the two end-points | |
} | |
/*********************************************************************/ | |
/* Mouse drawing function */ | |
var down = function(e) | |
{ | |
var canCreatePoint = true, i, coords; | |
if (e[JXG.touchProperty]) | |
i = 0; | |
coords = getMouseCoords(e, i); | |
var point = board.create('point',[coords.usrCoords[1],coords.usrCoords[2]], {highlightFillColor:'Gray', highlightStrokeColor:'Gray', size:2, | |
fillColor:'RoyalBlue', strokeColor:'RoyalBlue'}); | |
}; | |
/*********************************************************************/ | |
/* Create a board */ | |
var board = JXG.JSXGraph.initBoard('jxgbox',boardParams); | |
board.on('down', down); | |
board.off('off', down); | |
I need help with implementing this part of the code: /* The Graham's scan function */ function findConvexHull(board) { var N = 0, P = {}; for(var el in board.objects) if(board.objects[el].elType == 'point') { P[N] = board.objects[el]; N++; } // sort the point set P; to obtain the x-coordinate of 'p', simply use 'p.X()' and similarly you can use 'p.Y()' for the y-coordinate function p.X() function p.Y() // run Graham's scan to obtain the convex hull points in some order (clockwise/anticlokwise) What to implement here?(Method) /* draw line segments between the convex hull points to obtain the final convex polygon; to draw line segment you can simply use --> board.create('segment',[p1,p2],{fillColor: 'green',strokeColor:'green'}); where p1,p2 are the two end-points */ (How to implement the function) board.create('segment',[p1,p2], {fillColor: 'green',strokeColor:'green'}); } The above /* The Graham's scan function */ section of the code need to be written using Java Script Lang. Thanks for the help |
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started