Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
silviomm committed Jul 11, 2019
2 parents a17af80 + be005f6 commit 8490742
Show file tree
Hide file tree
Showing 6 changed files with 108 additions and 38 deletions.
27 changes: 27 additions & 0 deletions css/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#loader {
position: absolute;
left: 50%;
top: 150px;
z-index: 1;
width: 150px;
height: 150px;
margin: -75px 0 0 -75px;
border: 16px solid #f3f3f3;
border-radius: 50%;
border-top: 16px solid #0ffa36;
width: 120px;
height: 120px;
-webkit-animation: spin 2s linear infinite;
animation: spin 2s linear infinite;
display:none;
}

@-webkit-keyframes spin {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}

@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
12 changes: 9 additions & 3 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,16 @@
<!-- Custom styles for this page -->
<link href="vendor/datatables/dataTables.bootstrap4.min.css" rel="stylesheet">

<!-- Custom styles for this template -->
<link href="css/style.css" rel="stylesheet">


<title>Simulador AD</title>
</head>

<body>
<div id="loader"></div>

<!-- Content Wrapper -->
<div id="content-wrapper" class="d-flex flex-column">

Expand Down Expand Up @@ -78,7 +84,8 @@
<i class="fas fa-tachometer-alt fa-2x text-gray-300"></i>
</div>
<div class="col-9">
<input id="input-transiente" type="number" class="form-control bg-light border-0 small" placeholder="Auto">
<input id="input-transiente" type="number" class="form-control bg-light border-0 small"
placeholder="Auto">
</div>
</div>
</div>
Expand Down Expand Up @@ -120,8 +127,7 @@
<i class="fas fa-circle-notch fa-2x text-gray-300"></i>
</div>
<div class="col-9">
<input id="input-rodadas" type="number" class="form-control bg-light border-0 small"
value="2">
<input id="input-rodadas" type="number" class="form-control bg-light border-0 small" value="2">
</div>
</div>
</div>
Expand Down
5 changes: 5 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"dependencies": {
"browserify": "^16.2.3",
"inv-chisquare-cdf": "^1.0.0",
"jquery": "^3.4.1",
"seedrandom": "^3.0.1"
}
}
10 changes: 7 additions & 3 deletions src/Helpers/interface.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,14 @@ class Interface {
static clearTable(tableId) {
document.getElementById(tableId).getElementsByTagName('tbody')[0].innerHTML = "";
}


// Preenche tabela de métricas por rodada
static fillMetricasTable(stats) {
for (let i = 0; i < stats.perRound.length; i++) {
static fillMetricasTable(stats, numeroRodadas) {
let limiteRodadasBase = 50;
let passo = numeroRodadas <= limiteRodadasBase*2 ? 1 : Math.trunc(numeroRodadas/limiteRodadasBase);
console.log(passo);
for (let i = 0; i < stats.perRound.length; i+=passo) {
const s = stats.perRound[i];
// ordem no html: round, (avg e var)(x, w, t, nq)
let statsValues = [s.round, s.X.avg, s.X.var, s.W.avg, s.W.var, s.T.avg, s.T.var, s.Nq.avg, s.Nq.var];
Expand Down Expand Up @@ -147,4 +151,4 @@ class Interface {
}
}

module.exports = Interface;
module.exports = Interface;
91 changes: 59 additions & 32 deletions src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,44 +11,71 @@ const interface = require('./Helpers/interface');
// Lógica principal do simulador
const simulator = require('./Simulator/simulator');

function exibeModal() {

return new Promise(function (resolve, reject) {

document.getElementById('loader').style.display = "block";
setTimeout(function(){ resolve()}, 100);
});
}

// Adiciona evento de 'click' no botão de play.
document.getElementById('run-button').addEventListener('click', () => {


let startTime = new Date().getTime();
let result = simulator.run(interface.getInputValues());
let endTime = new Date().getTime();

console.log('tempo simulacao: ', (endTime - startTime) / 1000);
startTime = new Date().getTime();

// Preenche tabela de IC
interface.clearTable('ic-table');
interface.fillICTable(result.stats);

// Preenche tabela de métricas
interface.clearTable('metricas-table');
interface.addTableRow('metricas-table', {
'rodada': `<b>MÉDIA</b>`,
'X': `<b>${result.stats.X.getAverage().toFixed(5)}</b>`,
'vX': `<b>${result.stats.vX.getAverage().toFixed(5)}</b>`,
'W': `<b>${result.stats.W.getAverage().toFixed(5)}</b>`,
'vW': `<b>${result.stats.vW.getAverage().toFixed(5)}</b>`,
'T': `<b>${result.stats.T.getAverage().toFixed(5)}</b>`,
'vT': `<b>${result.stats.vT.getAverage().toFixed(5)}</b>`,
'Nq': `<b>${result.stats.Nq.getAverage().toFixed(5)}</b>`,
'vNq': `<b>${result.stats.vNq.getAverage().toFixed(5)}</b>`,
});
// interface.fillMetricasTable(result.stats);

exibeModal();
exibeModal().then(function(){
let startTime = new Date().getTime();
let result = simulator.run(interface.getInputValues());

let input = interface.getInputValues();
console.log(result);
let numeroRodadas = input.rodadas;
let endTime = new Date().getTime();

console.log('tempo simulacao: ', (endTime - startTime) / 1000);
startTime = new Date().getTime();

// Preenche tabela de IC
interface.clearTable('ic-table');
interface.fillICTable(result.stats);
console.log(result.stats);
// Preenche tabela de métricas
interface.clearTable('metricas-table');
interface.fillMetricasTable(result.stats, numeroRodadas);

// graficos
// grafico do artine antigo: interface.geraGrafico(result.totalId, result.nqIter, result.numPontos, '#chartNq1');
interface.createLineChart(result.totalId, result.nqIter, result.numPontos, 'chart-1', 'chart-area-1');
interface.createLineChart(result.totalId, result.wIter, result.numPontos, 'chart-2', 'chart-area-2');
interface.addTableRow('metricas-table', {
'rodada': `<b>MÉDIA</b>`,
'X': `<b>${result.stats.X.getAverage().toFixed(5)}</b>`,
'vX': `<b>${result.stats.vX.getAverage().toFixed(5)}</b>`,
'W': `<b>${result.stats.W.getAverage().toFixed(5)}</b>`,
'vW': `<b>${result.stats.vW.getAverage().toFixed(5)}</b>`,
'T': `<b>${result.stats.T.getAverage().toFixed(5)}</b>`,
'vT': `<b>${result.stats.vT.getAverage().toFixed(5)}</b>`,
'Nq': `<b>${result.stats.Nq.getAverage().toFixed(5)}</b>`,
'vNq': `<b>${result.stats.vNq.getAverage().toFixed(5)}</b>`,
});

endTime = new Date().getTime();
// graficos
// grafico do artine antigo: interface.geraGrafico(result.totalId, result.nqIter, result.numPontos, '#chartNq1');
interface.createLineChart(result.totalId, result.nqIter, result.numPontos, 'chart-1', 'chart-area-1');
interface.createLineChart(result.totalId, result.wIter, result.numPontos, 'chart-2', 'chart-area-2');

console.log('tempo renderização: ', (endTime - startTime) / 1000);
endTime = new Date().getTime();

console.log('tempo renderização: ', (endTime - startTime) / 1000);
document.getElementById('loader').style.display = "none";
})


// piru = new Promise((resolve) => {
// resolve(document.getElementById('loader').style.display = "block");
// })
// .then(function () {
// fazSimulacao();
// document.getElementById('loader').style.display = "none";
// });

});
})

0 comments on commit 8490742

Please sign in to comment.