JSFiddle - React, Tailwind, and code Playground
by Sub Taper
HTML
<script src="https://www.google.com/jsapi?ext.js"></script>
<body>
<form>
Half-Life: <br>
Dose (mg): <br>
<input class="amount" type="number" id="d" maxlength="4" size="20"><br>
Dose (mg):
<input class="amount" type="number" id="d" maxlength="4" size="20"><br>
</form>
</body>
<div id="todays-total-sales"></div>
CSS
input.half-life {
font-size: medium;
}
JavaScript
google.load('visualization', '1.1', {packages: ['line']});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
var plot_data = [];
var arr_i = [];
var arr_k = [];
var hl = 8;
// parseFloat($("#halfLife").val());
//console.log(hl);
var d = 20;
// parseFloat($("#doseAmount").val());
//console.log(d);
var fr = 4;
//parseFloat($("#freqDose").val());
//console.log(fr);
var span = 6;
arr_k.length = span;
arr_k.fill(0);
var inner = [];
for (k = 0; k <= span; k += 1) {
arr_k[k] = [];
for (i = 0; i <= fr; i += 1) {
var in_point = Math.pow(0.5, (i / hl));
var func2 = function(k, i) {
return (k == 0 && i == 0) ? d : (k > 0 && i == 0) ? arr_k[k - 1][fr] + d : (i > 0) ? arr_k[k][0] * in_point : 0
}
arr_k[k][i] = func2(k, i);
}
}
console.table(arr_k);
var flattened = arr_k.reduce(
(acc, cur) => acc.concat(cur), []
);
for (i = 0; i <= flattened.length; i += 1) {
var point = flattened[i];
plot_data.push([i, point]);
}
console.log(plot_data);
data.addColumn('number', 'Hour');
data.addColumn('number', 'Pageviews');
/* for (i = 0; i < chartData.length; i++){
data.addRow(chartData[i]);
};*/
data.addRows(plot_data);
//data.addRows([chartData[2]]);
var options = {
width: 450,
height: 250
};
var chart = new google.charts.Line(document.getElementById('todays-total-sales'));
chart.draw(data, options);
}