Calculating Midpoints v001

// Insptired by midpoints by Steve Phelps:
// geogebra.org/m/rqvdkvgk
// geogebra.org/m/m799zvtz

Log in to post a comment.

// You can find the Turtle API reference here: https://turtletoy.net/syntax
Canvas.setpenopacity(1);

// Global code will be evaluated once.
const turtle = new Turtle();
turtle.penup();
turtle.goto(-50,-20);
turtle.pendown();

const aX = -85; // min=-95 max=95 step = 5
const aY = -85; // min=-95 max=95 step = 5

const bX = 85; // min=-95 max=95 step = 5
const bY = 85; // min=-95 max=95 step = 5

var cX = 0;
var cY = 0;

// Insptired by midpoints by Steve Phelps: 
// https://www.geogebra.org/m/rqvdkvgk
// https://www.geogebra.org/m/m799zvtz

//todo add lables and equation on screen


drawCartesian();

//  draw line
turtle.jump(aX,aY);
turtle.goto(bX,bY);

// add end points
centeredCircle(aX,aY, 2);
centeredCircle(bX,bY, 2);
calculateCenter(aX, aY, bX, bY)


function calculateCenter(ax, ay, bx, by){
    var cx = (ax + bx)/2;
    var cy = (ay + by) / 2;
    
    centeredCircle(cx,cy, 2);
    
}


// draw Cartesian coordinates
function drawCartesian(){
    // boundry
    turtle.pendown();
    turtle.jump(-95,-95);
    for(var n=0; n<=4; n++){
        turtle.forward(190);
        turtle.right(90);
    }

    // X Axis
    turtle.jump(-95,0);
    turtle.seth(0)
    turtle.forward(190);

    // tick marks
    turtle.jump(-95,0);
    turtle.seth(0)
    for(var n=0; n<=36; n++){
    turtle.forward(5);
    turtle.right(90);
    turtle.forward(2);
    turtle.back(4);
    turtle.forward(2);
    turtle.left(90);
    }
    
    // Y Axis
    turtle.jump(0,-95);
    turtle.seth(90)
    turtle.forward(190);

    // tick marks
    turtle.jump(0,-95);
    turtle.seth(90)
    for(var n=0; n<=36; n++){
    turtle.forward(5);
    turtle.right(90);
    turtle.forward(2);
    turtle.back(4);
    turtle.forward(2);
    turtle.left(90);
    }
    
    
}

// thanks to Reinder for this function
// Draws a circle centered a specific x,y location 
// and returns the turtle to the original angle after it completes the circle.
function centeredCircle(x,y, radius, ext) {
turtle.penup();
turtle.goto(x,y);
turtle.backward(radius);
turtle.left(90);
turtle.pendown(); turtle.circle(radius, ext);
turtle.right(90); turtle.penup(); turtle.forward(radius); turtle.pendown();
}