Private
Public Access
1
0

stroke angle chart prototype

This commit is contained in:
Sander Roosendaal
2019-12-11 15:17:20 +01:00
parent 04ffc15f24
commit 00f7a5a3ef
3 changed files with 75 additions and 10 deletions

View File

@@ -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'}),

View File

@@ -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) {

View File

@@ -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() {