stroke angle chart prototype
This commit is contained in:
@@ -258,7 +258,7 @@ rowingmetrics = (
|
|||||||
'ax_min': 0,
|
'ax_min': 0,
|
||||||
'ax_max': 30,
|
'ax_max': 30,
|
||||||
'default': 0,
|
'default': 0,
|
||||||
'sigfigs': 0,
|
'sigfigs': 1,
|
||||||
'mode':'water',
|
'mode':'water',
|
||||||
'type': 'pro',
|
'type': 'pro',
|
||||||
'group': 'stroke'}),
|
'group': 'stroke'}),
|
||||||
|
|||||||
@@ -394,8 +394,14 @@ function copyText() {
|
|||||||
<div id="athlete_hr"></div>
|
<div id="athlete_hr"></div>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if 'stroke' in metricsgroups %}
|
||||||
|
<li class="grid_2" style="height:500px">
|
||||||
|
<div style="width:100%;height:70%;" id="stroke_angles"></div>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="grid_2">
|
<li class="grid_2">
|
||||||
{% if analysis and user.is_authenticated and user == analysis.workout.user.user %}
|
{% if analysis and user.is_authenticated and user == analysis.workout.user.user %}
|
||||||
<p>
|
<p>
|
||||||
@@ -411,6 +417,7 @@ function copyText() {
|
|||||||
$(document).ready( function() {
|
$(document).ready( function() {
|
||||||
$(window).load(function() {
|
$(window).load(function() {
|
||||||
// initialize data fields
|
// initialize data fields
|
||||||
|
console.log('initializing first value of data');
|
||||||
{% for id, metric in metrics.items %}
|
{% for id, metric in metrics.items %}
|
||||||
{{ id }}_now = {{ id }}_values[0];
|
{{ id }}_now = {{ id }}_values[0];
|
||||||
document.getElementById("{{ id }}").innerHTML = {{ id }}_now;
|
document.getElementById("{{ id }}").innerHTML = {{ id }}_now;
|
||||||
@@ -466,6 +473,10 @@ function copyText() {
|
|||||||
hr_now = hr_values[0];
|
hr_now = hr_values[0];
|
||||||
set_athlete();
|
set_athlete();
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if 'stroke' in metricsgroups %}
|
||||||
|
anglesoptions.PieStartAngle = 90+catch_now;
|
||||||
|
set_stroke();
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
// cookie reader
|
// cookie reader
|
||||||
function createCookie(name,value,days) {
|
function createCookie(name,value,days) {
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
google.charts.load('current', {'packages':['gauge']});
|
google.charts.load('current', {'packages':['gauge','corechart']});
|
||||||
google.charts.setOnLoadCallback(drawSPMChart);
|
google.charts.setOnLoadCallback(drawSPMChart);
|
||||||
google.charts.setOnLoadCallback(drawSpeedChart);
|
google.charts.setOnLoadCallback(drawSpeedChart);
|
||||||
google.charts.setOnLoadCallback(drawPowerChart);
|
google.charts.setOnLoadCallback(drawPowerChart);
|
||||||
google.charts.setOnLoadCallback(drawHRChart);
|
google.charts.setOnLoadCallback(drawHRChart);
|
||||||
|
google.charts.setOnLoadCallback(drawStrokeAngleChart);
|
||||||
console.log('initializing data');
|
|
||||||
|
|
||||||
var spmdata = [
|
var spmdata = [
|
||||||
['Label', 'Value'],
|
['Label', 'Value'],
|
||||||
@@ -26,6 +25,33 @@ var hrdata = [
|
|||||||
['HR',110],
|
['HR',110],
|
||||||
]
|
]
|
||||||
|
|
||||||
|
var angledata = [
|
||||||
|
['Angle', 'deg'],
|
||||||
|
['slip', 10 ],
|
||||||
|
['load', 50],
|
||||||
|
['unload', 50],
|
||||||
|
['wash', 10],
|
||||||
|
['recovery',240 ]
|
||||||
|
]
|
||||||
|
|
||||||
|
var anglesoptions = {
|
||||||
|
title: 'Stroke Angles',
|
||||||
|
legend: 'none',
|
||||||
|
pieHole: 0.5,
|
||||||
|
chartArea: { width: "100%" },
|
||||||
|
pieStartAngle: 35,
|
||||||
|
pieSliceText: 'value',
|
||||||
|
pieSliceTextStyle: {color:'black',fontSize:12},
|
||||||
|
slices: {
|
||||||
|
0: { color: 'lightblue' },
|
||||||
|
1: { color: 'lightgreen' },
|
||||||
|
2: { color: 'yellow'},
|
||||||
|
3: { color: 'orange'},
|
||||||
|
4: { color: 'transparent', textStyle: {color:'transparent'}}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
var hroptions = {
|
var hroptions = {
|
||||||
min: 100, max: 200,
|
min: 100, max: 200,
|
||||||
width: 400, height: 120,
|
width: 400, height: 120,
|
||||||
@@ -73,6 +99,7 @@ var spmchart = null;
|
|||||||
var speedchart = null;
|
var speedchart = null;
|
||||||
var powerchart = null;
|
var powerchart = null;
|
||||||
var datapower = null;
|
var datapower = null;
|
||||||
|
var dataangles = null;
|
||||||
|
|
||||||
// SPM chart
|
// SPM chart
|
||||||
function drawSPMChart() {
|
function drawSPMChart() {
|
||||||
@@ -116,7 +143,7 @@ function drawPowerChart() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Power chart
|
// HR chart
|
||||||
function drawHRChart() {
|
function drawHRChart() {
|
||||||
datahr = new google.visualization.arrayToDataTable(hrdata);
|
datahr = new google.visualization.arrayToDataTable(hrdata);
|
||||||
try {
|
try {
|
||||||
@@ -128,6 +155,18 @@ function drawHRChart() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Stroke angle chart
|
||||||
|
function drawStrokeAngleChart() {
|
||||||
|
dataangles = new google.visualization.arrayToDataTable(angledata);
|
||||||
|
try {
|
||||||
|
angleschart = new google.visualization.PieChart(document.getElementById('stroke_angles'));
|
||||||
|
angleschart.draw(dataangles,anglesoptions);
|
||||||
|
} catch(err) {
|
||||||
|
console.log('no angles div');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function set_basic() {
|
function set_basic() {
|
||||||
dataspm.setCell(0,1,spm_now);
|
dataspm.setCell(0,1,spm_now);
|
||||||
spmchart.draw(dataspm, spmoptions);
|
spmchart.draw(dataspm, spmoptions);
|
||||||
@@ -144,7 +183,22 @@ function set_athlete() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function set_stroke() {
|
function set_stroke() {
|
||||||
|
var piestartangle = 90+catch_now;
|
||||||
|
var load = Math.max(-catch_now-slip_now+peakforceangle_now);
|
||||||
|
var unload = Math.max(finish_now-wash_now-peakforceangle_now) ;
|
||||||
|
var recovery = Math.max(360+catch_now-finish_now);
|
||||||
|
// console.log('load ',load,'; unload ',unload,'; recovery ',recovery,'; pie start angle ',piestartangle);
|
||||||
|
dataangles.setCell(0,1,slip_now);
|
||||||
|
dataangles.setCell(1,1,load);
|
||||||
|
dataangles.setCell(2,1,unload);
|
||||||
|
dataangles.setCell(3,1,wash_now);
|
||||||
|
dataangles.setCell(4,1,recovery);
|
||||||
|
anglesoptions.pieStartAngle = piestartangle;
|
||||||
|
try {
|
||||||
|
angleschart.draw(dataangles,anglesoptions);
|
||||||
|
} catch(err) {
|
||||||
|
console.log('failed: ',err);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function set_forcepower() {
|
function set_forcepower() {
|
||||||
|
|||||||
Reference in New Issue
Block a user