Kinetic Calculator

by Shawn Lackey

HTML

<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>

JavaScript

var m = 0;
var n = 0;
var V = new Array();
var K = new Array();
var R = new Array();


function calculateK(m, v) {
    return 1 / 2 * m * v * v;
}

function calculate() {
    m = Number($('#m').val());
    var vmin = Number($('#vmin').val());
    var vmax = Number($('#vmax').val());
    var vt = 0;


    var i = 0;
    for (vt = vmin; vt <= vmax; vt++) {
        V[i] = vt;
        K[i] = calculateK(m, vt);
        R[i] = [K[i], V[i]];
        i++;
    }
    n = i - 1;

}

function displayValues() {
    var str = "";

    str = "K = 1/2*" + m + " v<sup>2</sup><br/><br/>";

    for (var i = 0; i <= n; i++) {
        str += " K = " + K[i] + " v = " + V[i] + "<br/>";
    }

    output.innerHTML = str;
}

function plotValues() {
    calculate();
    chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            type: 'line',
            marginRight: 130,
            marginBottom: 25
        },
        title: {
            text: 'Kinetic Energy Equation',
            x: -20 //center
        },
        xAxis: {
            title: {
                text: 'Velocity'
            }
        },
        yAxis: {
            title: {
                text: 'KE'
            }
        },

        plotOptions: {
            scatter: {
                marker: {
                    radius: 5,
                    states: {
                        hover: {
                            enabled: true,
                            lineColor: 'rgb(100,100,100)'
                        }
                    }
                },
                states: {
                    hover: {
                        marker: {
                            enabled: false
                        }
                    }
                }
            }
        },

        series: [{
            name: 'KE Values',
            color: 'rgba(223, 83, 83, .5)',
            data: R
        }]
    })
}

$(document).ready(function () {
    $('#calculate').click(function () {
       ...