lineup +/-
Period 1 12:00 → 06:02
Celtics lineup 0
Marcus Smart
Jayson Tatum
Al Horford
Derrick White
Jaylen Brown-3
Period 1 06:02 → 04:34
Celtics lineup -3
Marcus Smart
Robert Williams III
Jayson Tatum
Derrick White
Jaylen Brown-3
Period 1 04:34 → 02:28
Celtics lineup -3
Grant Williams
Robert Williams III
Jayson Tatum
Malcolm Brogdon
Jaylen BrownPeriod 1 02:28 → 00:00
Celtics lineup 0
Grant Williams
Marcus Smart
Robert Williams III
Malcolm Brogdon
Jaylen Brown+5
Period 2 12:00 → 05:15
Celtics lineup +5
Grant Williams
Jayson Tatum
Al Horford
Derrick White
Malcolm Brogdon-5
Period 2 05:15 → 02:25
Celtics lineup -5
Marcus Smart
Robert Williams III
Jayson Tatum
Derrick White
Jaylen BrownPeriod 2 02:25 → 00:00
Celtics lineup 0
Grant Williams
Marcus Smart
Robert Williams III
Jayson Tatum
Jaylen Brown+10
Period 3 12:00 → 04:34
Celtics lineup +10
Marcus Smart
Jayson Tatum
Al Horford
Derrick White
Jaylen Brown+4
Period 3 04:34 → 02:55
Celtics lineup +4
Grant Williams
Marcus Smart
Robert Williams III
Jayson Tatum
Jaylen Brown+1
Period 3 02:55 → 00:00
Celtics lineup +1
Grant Williams
Marcus Smart
Robert Williams III
Jayson Tatum
Malcolm Brogdon-4
Period 4 12:00 → 09:40
Celtics lineup -4
Grant Williams
Al Horford
Derrick White
Malcolm Brogdon
Jaylen Brown+4
Period 4 09:40 → 09:04
Celtics lineup +4
Grant Williams
Jayson Tatum
Al Horford
Derrick White
Jaylen Brown+8
Period 4 09:04 → 07:00
Celtics lineup +8
Grant Williams
Marcus Smart
Jayson Tatum
Al Horford
Jaylen BrownPeriod 4 07:00 → 01:06
Celtics lineup 0
Grant Williams
Marcus Smart
Robert Williams III
Jayson Tatum
Jaylen Brown-2
Period 4 01:06 → 01:01
Celtics lineup -2
Payton Pritchard
Sam Hauser
Mike Muscala
Jaylen Brown
Luke Kornet+2
Period 4 01:01 → 00:00
Celtics lineup +2
Payton Pritchard
Sam Hauser
Mike Muscala
Justin Champagnie
Luke Kornet
+18
+9
var curScore = new Object();curScore[visitors] = segInfo.vsScore;curScore[homeTeam] = segInfo.hsScore;var opacity = new Object();var tt = new Object();tt[visitors] = {missFT:0, miss2:0, miss3:0, TO:0, MakeFT:0, Make2:0, Make3:0, Assist:0, DefReb:0, OffReb:0, Block:0, Steal:0, Flag:0, PF:0};tt[homeTeam] = {missFT:0, miss2:0, miss3:0, TO:0, MakeFT:0, Make2:0, Make3:0, Assist:0, DefReb:0, OffReb:0, Block:0, Steal:0, Flag:0, PF:0};var eventsMsg = "
" + curScore[visitors] + " | "+"" + curScore[homeTeam] + " | " + ""+ periodTime(evs[i].ts) + " | " + nn[evs[i].team] + " | " + evs[i].player + " | " + evs[i].event + " | ";if (typeof(tt[evs[i].team][evs[i].event]) !== 'undefined') {tt[evs[i].team][evs[i].event] = tt[evs[i].team][evs[i].event] + 1;}}}eventsMsg = eventsMsg + '
Period ' + (segInfo.startp+1) + ' ' + startTime + ' → Period ' + (segInfo.endp+1) + ' ' + endTime + '
' + '
'+''+nn[visitors]+' '+(segInfo.veScore-segInfo.vsScore)+''+'
('+segInfo.vsScore+'→'+segInfo.veScore+')'+'
FG: '+ttper[visitors].FGmake+'-'+ttper[visitors].FGattempt+ttper[visitors].FGper+'
FG3: '+ttper[visitors].FG3make+'-'+ttper[visitors].FG3attempt+ttper[visitors].FG3per+'
FT: '+ttper[visitors].FTmake+'-'+ttper[visitors].FTattempt+ttper[visitors].FTper+'
Reb: '+(tt[visitors].DefReb+tt[visitors].OffReb)+' Off: '+tt[visitors].OffReb+'
Ast: '+tt[visitors].Assist+' TO: '+tt[visitors].TO+'
Stl: '+tt[visitors].Steal+' Blk: '+tt[visitors].Block+' PF: '+tt[visitors].PF+'
'+''+nn[homeTeam]+' '+(segInfo.heScore-segInfo.hsScore)+''+'
('+segInfo.hsScore+'→'+segInfo.heScore+')'+'
FG: '+ttper[homeTeam].FGmake+'-'+ttper[homeTeam].FGattempt+ttper[homeTeam].FGper+'
FG3: '+ttper[homeTeam].FG3make+'-'+ttper[homeTeam].FG3attempt+ttper[homeTeam].FG3per+'
FT: '+ttper[homeTeam].FTmake+'-'+ttper[homeTeam].FTattempt+ttper[homeTeam].FTper+'
Reb: '+(tt[homeTeam].DefReb+tt[homeTeam].OffReb)+' Off: '+tt[homeTeam].OffReb+'
Ast: '+tt[homeTeam].Assist+' TO: '+tt[homeTeam].TO+'
Stl: '+tt[homeTeam].Steal+' Blk: '+tt[homeTeam].Block+' PF: '+tt[homeTeam].PF+'
' +totalsMsg + eventsMsg + '
';cttdiv.innerHTML = '' + tipText + '
';cttdiv.style.visibility = "visible";prevSeg = segment; }///////////////////////////////////////////////////function cttClick(evt) {var overlay = document.getElementById('gfcovly');var ctx=overlay.getContext("2d");ctx.clearRect(0,0,cWidth,cHeight)document.getElementById("cttdiv").innerHTML = "";document.getElementById("cttdiv").style.visibility = "hidden"; }/////////////////////////////////////////////////// function toggle_visibility(id) { var e = document.getElementById(id); if(e.style.visibility == 'visible') e.style.visibility = 'hidden'; else e.style.visibility = 'visible'; }///////////////////////////////////////////////////function getSegmentAtClick (xpos) {var ts = (xpos/cWidth) * endTime;for (i=1; i<=sc.length-1; i++) {if ((ts > sc[i-1].ts) && (ts <= sc[i].ts)) {break;} }return {start_sc: (i-1),end_sc: i,} }///////////////////////////////////////////////////function getSegmentInfo (start_sc, end_sc) {var startPeriod = 0;var endPeriod = 0;if (sc[start_sc].ts <= 48) {startPeriod = Math.floor(sc[start_sc].ts/12);}else {startPeriod = 4 + Math.floor((sc[start_sc].ts-48)/5) ;}if (sc[end_sc].ts <= 48) {endPeriod = Math.floor(sc[end_sc].ts/12);}else {endPeriod = 4 + Math.floor((sc[end_sc].ts-48)/5) ;}return {sx: (sc[start_sc].ts/endTime)*cWidth,ex: (sc[end_sc].ts/endTime)*cWidth,sts: sc[start_sc].ts,ets: sc[end_sc].ts,vsScore: sc[start_sc].vscore,hsScore: sc[start_sc].hscore,veScore: sc[end_sc].vscore,heScore: sc[end_sc].hscore,startp: startPeriod,endp : endPeriod,}; }function periodTime(ts) {var min = 0;var sec = 0;var p = 0;if (ts <= 48) {p = Math.ceil(ts/12);min = Math.floor((p * 12) - ts);sec = Math.round(((p * 12) - ts - min) * 60);}else {ts = ts - 48;p = Math.ceil(ts/5);min = Math.floor((p * 5) - ts);sec = Math.round(((p * 5) - ts - min) * 60);}return ('0' + min).slice(-2)+':'+('0' + sec).slice(-2);}//////////// function handleMoveEvent(evt) { var ctx = canvas.getContext('2d'); var mousePos = getMousePos(canvas, evt); var message = 'Mouse position: ' + mousePos.x + ',' + mousePos.y; writeMessage(canvas, message); } function writeMessage(canvas, message) { var context = canvas.getContext('2d'); context.clearRect(0, 0, 150, 25); context.fillStyle = 'blue'; context.font = '12px Arial'; context.fillText(message, 5, 15); }//////////// function getMousePos(canvas, evt) { var rect = canvas.getBoundingClientRect(); return { x: Math.floor(evt.clientX - rect.left), y: Math.floor(evt.clientY - rect.top) }; }// end functions /////////////////////////////////////////////////// //// create canvas grid var ctx=canvas.getContext("2d"); ctx.beginPath(); ctx.lineWidth=1;// mid bar ctx.moveTo(0,cHeight/2); ctx.lineTo(canvas.width,cHeight/2);// period seperaters for (i=1; i<=(numPeriods-1); i++) { if (i <= 4) { ctx.moveTo(qWidth*i,0); ctx.lineTo(qWidth*i,cHeight); } else { ctx.moveTo((qWidth*4)+(epWidth*(i-4)),0); ctx.lineTo((qWidth*4)+(epWidth*(i-4)),cHeight); } }// draw grid ctx.stroke(); //// draw flow line ctx.beginPath(); ctx.lineWidth=2; ctx.moveTo(0,cHeight/2); var x = 0; var y = 0; for (i=1; i<=sc.length-1; i++) { x = (sc[i].ts/12) * qWidth; y = (cHeight/2) + ((sc[i].hscore-sc[i].vscore) * ((cHeight/2)/biggestLead)); sc[i].x = x; ctx.lineTo(x,y); } ctx.stroke();116
Avg Lead -2.88   
99
lineup +/-
+3
Period 1 12:00 → 04:34
Heat lineup +3
Bam Adebayo
Kevin Love
Max Strus
Gabe Vincent
Jimmy Butler+3
Period 1 04:34 → 02:01
Heat lineup +3
Kyle Lowry
Cody Zeller
Max Strus
Caleb Martin
Jimmy ButlerPeriod 1 02:01 → 00:00
Heat lineup 0
Kyle Lowry
Cody Zeller
Caleb Martin
Duncan Robinson
Jimmy Butler-2
Period 2 12:00 → 09:26
Heat lineup -2
Kyle Lowry
Bam Adebayo
Caleb Martin
Duncan Robinson
Jimmy Butler-7
Period 2 09:26 → 07:46
Heat lineup -7
Bam Adebayo
Caleb Martin
Gabe Vincent
Duncan Robinson
Jimmy Butler+6
Period 2 07:46 → 03:12
Heat lineup +6
Kyle Lowry
Bam Adebayo
Max Strus
Caleb Martin
Gabe Vincent+1
Period 2 03:12 → 01:23
Heat lineup +1
Bam Adebayo
Max Strus
Caleb Martin
Gabe Vincent
Jimmy Butler+2
Period 2 01:23 → 00:00
Heat lineup +2
Cody Zeller
Max Strus
Caleb Martin
Gabe Vincent
Jimmy Butler-8
Period 3 12:00 → 07:40
Heat lineup -8
Bam Adebayo
Kevin Love
Max Strus
Gabe Vincent
Jimmy Butler-7
Period 3 07:40 → 06:24
Heat lineup -7
Bam Adebayo
Max Strus
Caleb Martin
Gabe Vincent
Jimmy Butler+1
Period 3 06:24 → 05:49
Heat lineup +1
Kyle Lowry
Bam Adebayo
Max Strus
Caleb Martin
Jimmy Butler-1
Period 3 05:49 → 00:00
Heat lineup -1
Kyle Lowry
Cody Zeller
Max Strus
Caleb Martin
Jimmy ButlerPeriod 4 12:00 → 09:04
Heat lineup 0
Kyle Lowry
Bam Adebayo
Caleb Martin
Gabe Vincent
Duncan Robinson-5
Period 4 09:04 → 07:52
Heat lineup -5
Kyle Lowry
Bam Adebayo
Caleb Martin
Gabe Vincent
Jimmy Butler-1
Period 4 07:52 → 04:55
Heat lineup -1
Kyle Lowry
Bam Adebayo
Max Strus
Caleb Martin
Jimmy Butler-1
Period 4 04:55 → 03:40
Heat lineup -1
Bam Adebayo
Max Strus
Caleb Martin
Gabe Vincent
Jimmy Butler+2
Period 4 03:40 → 01:40
Heat lineup +2
Kyle Lowry
Bam Adebayo
Max Strus
Caleb Martin
Jimmy Butler-3
Period 4 01:40 → 01:06
Heat lineup -3
Kyle Lowry
Bam Adebayo
Caleb Martin
Haywood Highsmith
Duncan RobinsonPeriod 4 01:06 → 01:00
Heat lineup 0
Omer Yurtseven
Nikola Jovic
Caleb Martin
Haywood Highsmith
Duncan RobinsonPeriod 4 01:00 → 00:00
Heat lineup 0
Cody Zeller
Omer Yurtseven
Nikola Jovic
Haywood Highsmith
Duncan Robinson