master
pisouvigne 5 years ago
parent a7503bbdb3
commit 14af595555

@ -54,7 +54,10 @@ function createSwitch(id, x, y) {
}
function createLine(points, id) {
let startX = points[0], startY = points[1], endX = points[2], endY = points[3];
let startX = points[0],
startY = points[1],
endX = points[2],
endY = points[3];
let distance20 = (endX - startX) / 100 * pourcentageBreak;
let newPoints = [startX, startY, startX + distance20, startY, endX - distance20, endY, endX, endY];
let line = new Konva.Line({
@ -78,7 +81,6 @@ function createLink(entre, sortie) {
switch (whatIsElement(sortie)) {
case "logique":
switch (giveLineId(sortie.name, entre)) {
case "id1":
let switchMidX = entre.getX() + entre.getWidth();
let switchMidY = entre.getY() + entre.getHeight() / 2;
@ -144,6 +146,7 @@ function createLink(entre, sortie) {
}
}
function createLogique(x, y, id, type) {
var imageObj = new Image();
imageObj.onload = function () {
@ -249,8 +252,7 @@ function createLinkSwitch() {
switchs = element;
}
});
}
else {
} else {
switchsInfoCopy.forEach(function (element) {
if (stage.findOne("#" + element.id).id3.length === 0) {
if (Math.abs(logique.y - element.y) < distanceSwitch) {

@ -404,19 +404,92 @@ function generate2() {
else logique.type = getTypeFromSameMatch(listeSame, logique.matchId1);
switch (logique.type) {
case 0:
console.log(logique.id + " type : " + logique.type + " col : " + logique.col);
insertLogiqueColonne(logique.id, "et", logique.col - 1);
break;
case 1:
console.log(logique.id + " type : " + logique.type + " col : " + logique.col);
insertLogiqueColonne(logique.id, "ou", logique.col - 1);
break;
case 2:
console.log(logique.id + " type : " + logique.type + " col : " + logique.col);
insertLogiqueColonne(logique.id, "inv", logique.col - 1);
break;
}
});
var logiques;
//creation de liens entre les portes logiques :
for (let col = 1; col < colonneTot; col++) {
//recuperer tout les logiques :
logiques = new Array();
listeLogiqueObj.forEach(function (logique) {
if (logique.col === col && logique.id3 === null) logiques.push(logique);
});
//check si y a des fork
while (getNumberFork(fork, col) > 0) {
fork.forEach(function (element) {
if (element[0] === col) {
//selection de la sortie a forker :
let logiqueFork = logiques[getRandomArbitrary(0, logiques.length)];
//recupération des logiques d'entree :
let logiqueEntre = new Array();
let sameId = null;
listeLogiqueObj.forEach(function (logique) {
if (logique.col === col + 1) {
if (sameId === null) {
sameId = logique.matchId1;
logiqueEntre.push(logique);
} else if (sameId === logique.matchId1)
logiqueEntre.push(logique);
}
});
logiqueFork.id3 = "done";
//creation du lien avec fork :
for (let i = 0; i < logiqueEntre.length; i++) {
createLink(findLogique(logiqueFork.id), findLogique(logiqueEntre[i].id));
}
fork.splice(fork.indexOf(element), 1);
}
});
}
}
//creation des autres liens :
//recupération des logiques restants :
for (x in listeLogiqueObj) {
if (listeLogiqueObj[x].id3 === null && listeLogiqueObj[x].col !== colonneTot) {
//liste des logiques possible :
let loqiques = new Array();
listeLogiqueObj.forEach(function (logique) {
if (logique.col === listeLogiqueObj[x].col + 1) {
if (logique.type === 2 && checkLogiqueLines(logique.id, "id1") === null) logiques.push(logique);
else if (logique.type !== 2) {
if (checkLogiqueLines(logique.id, "id1") === null || checkLogiqueLines(logique.id, "id2") === null) logiques.push(logique);
}
}
});
//attribution du logique le plus proche :
let logiqueFinal = null;
logiques.forEach(function (logique) {
if (logiqueFinal === null) {
logiqueFinal = logique;
} else if (Math.abs(findLogique(listeLogiqueObj[x].id).y - findLogique(logique.id).y) < Math.abs(findLogique(listeLogiqueObj[x].id).y - findLogique(logiqueFinal.id).y)) {
logiqueFinal = logique;
}
});
//console.log(listeLogiqueObj[x].id + " => " + logiqueFinal.id);
console.log(findLogique(listeLogiqueObj[x].id));
createLink(findLogique(listeLogiqueObj[x].id), findLogique(logiqueFinal.id));
}
}
}
function getNumberFork(arr, col) {
let num = 0;
arr.forEach(function (item) {
if (item[0] === col) num++;
});
return num;
}
function getElementArray(one, array) {

Loading…
Cancel
Save