Skip to content
Snippets Groups Projects
Commit 62ea701f authored by  Leonel Rosano Montero's avatar Leonel Rosano Montero
Browse files

Se dividen las funciones discontinuas

parent ef8ef4f1
No related branches found
No related tags found
No related merge requests found
......@@ -36,6 +36,8 @@ export class Graph2DComponent {
private id = 0;
private valores = [];
private conjunto= [];
// Animation state
......@@ -80,22 +82,58 @@ export class Graph2DComponent {
var conjs = this.obtenerConjunto(jsonCanvas.funs[0]);
var d = conjs + "}"; //Leo
var obj = JSON.parse(d);
//Para las funciones
if (obj.conj.sets.fdom == "function(x)") {
var nom = jsonCanvas.funs[0].dom;
var elemento1 = this.recursionfuncion(jsonCanvas.funs[0].sets, nom);
obj.conj.sets.fdom = function (x) { return eval(elemento1) }
var funcionString = '';
funcionString ="var "+nom+" = function(x){\nreturn "+elemento1+"}\n"
funcionString += 'return ' + nom + '(x);\n'
for (var funs of jsonCanvas.funs) {
funcionString = 'var ' + funs.fun + ' = function('+funs.args+'){\n return ' + this.generarExpresion(funs.bdy) + '}\n' + funcionString;
}
funcionString = '(x)=>{\n' + funcionString + '}';
console.log(funcionString)
obj.conj.sets.fdom = eval(funcionString);
}
if (obj.conj.sets.fcod == "function(x)") {
var nom = jsonCanvas.funs[0].cod;
var elemento2 = this.recursionfuncion(jsonCanvas.funs[0].sets, nom);
obj.conj.sets.fcod = function (x) { return (eval(elemento2)) }
var funcionString = '';
funcionString ="var "+nom+" = function(x){\nreturn "+elemento2+"}\n"
funcionString += 'return ' + nom + '(x);\n'
for (var funs of jsonCanvas.funs) {
funcionString = 'var ' + funs.fun + ' = function('+funs.args+'){\n return ' + this.generarExpresion(funs.bdy) + '}\n' + funcionString;
}
funcionString = '(x)=>{\n' + funcionString + '}';
obj.conj.sets.fdom = eval(funcionString);
}
var funcionGenerada = this.generarFuncion(jsonCanvas);
console.log(obj)
//para Enumerados
if (obj.conj.dom == 'Numer') {
......@@ -116,9 +154,11 @@ export class Graph2DComponent {
}
let fun = eval(funcionGenerada);
var colores = ['pink', 'red', 'blue', 'orange', 'green']
var colores = ['violet', 'red', 'blue', 'orange', 'green','black','']
var num = this.getRandomArbitrary(0, 4);
var color = colores[num];
......@@ -135,18 +175,78 @@ export class Graph2DComponent {
this.conjunto.push(obj.conj);
this.id = 0;
this.funciones = [];
this.funciones.push({
id: this.funciones.length,
sampler: 'builtIn',
fn: function(scope) {
return fun(scope.x)
},
graphType: tipoGraf,
color: color
})
if(obj.conj.baseDom == 'R'){
this.valores = [];
var funcionGenerada2 = this.generarFuncionDisc(jsonCanvas);
var funcionesVer2019 = this.createListFunction(jsonCanvas);
var listValores = [];
for (var k of this.valores){
listValores.push(parseInt(k))
}
for (var i of this.valores){
for(var t of this.valores){
var aux = parseInt(t);
var aux2 = parseInt(i);
var mul = aux * aux2;
listValores.push(mul)
}
}
for (i = -999; i < 1000; i++) {
listValores.push(i)
}
let sinRepetidos = listValores.filter((valor, indiceActual, arreglo) => arreglo.indexOf(valor) === indiceActual);
for (var fun2 of funcionesVer2019){
let fun3 = eval(fun2);
var insertar = false;
var punto1 = [];
if (sinRepetidos.length){
for (var p of sinRepetidos){
var pn= parseInt(p) - 0.001
var pp= parseInt(p) + 0.001
insertar = (((fun3(pp) != undefined) ) || ((fun3(pn) != undefined)) || insertar)
if((fun3(pp) != undefined)){
punto1.push(pp);
}else if ((fun3(pn) != undefined)){
punto1.push(p);
}
}
}else{
insertar = true;
}
if (insertar){
this.funciones.push({
id: 0,
sampler: 'builtIn',
fn: function(scope) {
return fun3(scope.x)
},
graphType: tipoGraf,
point:punto1[0],
color: color,
});
}
}
}else{
this.funciones.push({
id: this.funciones.length,
sampler: 'builtIn',
fn: function(scope) {
return fun(scope.x)
},
graphType: tipoGraf,
color: color
})
}
}else{
if(this.conjunto.length == 1){
this.id = 1;
this.conjunto.unshift({radio: 2, dom:this.conjunto[0].baseDom, cod:this.conjunto[0].baseCod, baseCod:this.conjunto[0].baseCod, baseDom:this.conjunto[0].baseDom, sets:{fdom:this.conjunto[0].baseDom,fcod:this.conjunto[0].baseCod}});
this.funciones[0].id = this.id;
......@@ -164,9 +264,144 @@ export class Graph2DComponent {
}
}
this.conjunto.push(obj.conj);
var identificador=0;
if (this.conjunto.length > 1){
identificador=this.conjunto.length - 2 + this.id;
}
if(obj.conj.baseDom == 'R'){
this.valores = [];
var funcionGenerada2 = this.generarFuncionDisc(jsonCanvas);
var funcionesVer2019 = this.createListFunction(jsonCanvas);
var listValores = [];
for (var k of this.valores){
listValores.push(parseInt(k))
}
for (var i of this.valores){
for(var t of this.valores){
var aux = parseInt(t);
var aux2 = parseInt(i);
var mul = aux * aux2;
listValores.push(mul)
}
}
for (i = -999; i < 1000; i++) {
listValores.push(i)
}
let sinRepetidos = listValores.filter((valor, indiceActual, arreglo) => arreglo.indexOf(valor) === indiceActual);
for (var fun2 of funcionesVer2019){
let fun3 = eval(fun2);
var insertar = false;
var punto1 = [];
if (sinRepetidos.length){
for (var p of sinRepetidos){
var pn= parseInt(p) - 0.001
var pp= parseInt(p) + 0.001
insertar = (((fun3(pp) != undefined) ) || ((fun3(pn) != undefined)) || insertar)
if((fun3(pp) != undefined)){
punto1.push(pp);
}else if ((fun3(pn) != undefined)){
punto1.push(p);
}
}
}else{
insertar = true;
}
if (insertar){
this.funciones.push({
id: identificador,
sampler: 'builtIn',
fn: function(scope) {
return fun3(scope.x)
},
graphType: tipoGraf,
point:punto1[0],
color: color,
});
}
}
}else{
this.funciones.push({
id: identificador,
sampler: 'builtIn',
fn: function(scope) {
return fun(scope.x)
},
graphType: tipoGraf,
color: color
});
}
}
}else{
this.conjunto = [];
this.conjunto.push(obj.conj);
this.id = 0;
this.funciones = [];
if(obj.conj.baseDom == 'R'){
this.valores = [];
var funcionGenerada2 = this.generarFuncionDisc(jsonCanvas);
var funcionesVer2019 = this.createListFunction(jsonCanvas);
var listValores = [];
for (var k of this.valores){
listValores.push(parseInt(k))
}
for (var i of this.valores){
for(var t of this.valores){
var aux = parseInt(t);
var aux2 = parseInt(i);
var mul = aux * aux2;
listValores.push(mul)
}
}
for (i = -999; i < 1000; i++) {
listValores.push(i)
}
let sinRepetidos = listValores.filter((valor, indiceActual, arreglo) => arreglo.indexOf(valor) === indiceActual);
for (var fun2 of funcionesVer2019){
let fun3 = eval(fun2);
var insertar = false;
var punto1 = [];
if (sinRepetidos.length){
for (var p of sinRepetidos){
var pn= parseInt(p) - 0.001
var pp= parseInt(p) + 0.001
insertar = (((fun3(pp) != undefined) ) || ((fun3(pn) != undefined)) || insertar)
if((fun3(pp) != undefined)){
punto1.push(pp);
}else if ((fun3(pn) != undefined)){
punto1.push(p);
}
}
}else{
insertar = true;
}
if (insertar){
this.funciones.push({
id: 0,
sampler: 'builtIn',
fn: function(scope) {
return fun3(scope.x)
},
graphType: tipoGraf,
point:punto1[0],
color: color,
});
}
}
}else{
this.funciones.push({
id: this.funciones.length + this.id,
id: this.funciones.length,
sampler: 'builtIn',
fn: function(scope) {
return fun(scope.x)
......@@ -174,21 +409,8 @@ export class Graph2DComponent {
graphType: tipoGraf,
color: color
});
}
}else{
this.conjunto = [];
this.conjunto.push(obj.conj);
this.id = 0;
this.funciones = [];
this.funciones.push({
id: this.funciones.length,
sampler: 'builtIn',
fn: function(scope) {
return fun(scope.x)
},
graphType: tipoGraf,
color: color
});
}
}
let bounding = this.getBounding();
this.instance = functionPlot({
......@@ -747,9 +969,501 @@ export class Graph2DComponent {
return expresion;
}
//Nuevo 20-07-2018
// nueva
createListFunction = function (graph) {
var funcionString = '';
var grafica;
var funciones = [];
var j = 0;
while (graph.funs[j].fun != graph.graph) {
j += 1;
}
var fun1 = graph.funs[j];
var arrayFunction = [];
var nameFun = [];
nameFun.push(fun1.fun);
funciones = this.armarFuncion(fun1.bdy,graph,nameFun);
for (var funs of funciones){
for (var fun of graph.funs){
if (fun.fun != fun1.fun){
funcionString = 'var ' + fun.fun + ' = function(' + fun.args.join() + '){\n return ' + this.generarExpresion(fun.bdy) + '}\n' + funcionString;
}
}
funcionString = 'var ' + fun1.fun + ' = function(' + fun1.args.join() + '){\n return ' + funs + '}\n' + funcionString;
funcionString += ';return ' + fun1.fun + '(' + fun1.args.join() + ');\n'
grafica = fun1;
funcionString = '(' + grafica.args.join() + ')=>{\n' + funcionString + '}';
arrayFunction.push(funcionString);
var funcionString = '';
}
return arrayFunction;
}
armarFuncion = function (exp,graph,nameFun){
var lisArm = this.generateFunctionAndExp(exp,graph,nameFun);
var lisFun = [];
for(var lis of lisArm){
var aux = '';
if(lis[0] == 'N'){
aux = lis[1];
}else{
aux = '('+lis[0]+' ? '+lis[1]+' : undefined )';
}
lisFun.push(aux);
}
return lisFun
}
generateFunctionAndExp = function (exp,graph,namefun6) {
var myList = [];
// devuelvo lista con tupla (cond,funcion)
if (exp.kind == 'cnd') {
var lisA = this.generateFunctionAndExp(exp.exp1,graph,namefun6);
var lisB = this.generateFunctionAndExp(exp.exp2,graph,namefun6);
var cond = this.createListExp(exp.cond);
var g = this.createListExp(exp.cond);
var aux121 = [];
var cond2 = g.splice(1);
var union = g[0]
for(var a of cond2){
union = '('+union+' && '+a+')';
}
for (var fun1 of lisA){
if(fun1[0] == 'N'){
if(cond.length == 0){
aux121[0]='N';
}else{
aux121[0]=union;
}
}else{
aux121[0]= '('+fun1[0]+' && '+union+ ')';
}
aux121[1] = fun1[1];
myList.push(aux121);
}
for (var fun2 of lisB){
if(cond.length != 0){
for (var condi of cond){
var aux123 = [];
aux123[1]=fun2[1];
if(fun2[0] == 'N'){
aux123[0]='!('+condi+')';
}else{
aux123[0] = '('+fun2[0]+' && !('+condi+'))';
}
myList.push(aux123);
}
}else{
myList.push(fun2);
}
}
} else if (exp.kind == 'bop') {
if (exp.op == '^') {
var lisA1 = this.generateFunctionAndExp(exp.exp1,graph,namefun6);
var lisB1 = this.generateFunctionAndExp(exp.exp2,graph,namefun6);
var aux1 = [];
for (var f1 of lisA1){
for (var f2 of lisB1){
var aux11 = 'Math.pow('+f1[1]+' , '+f2[1]+')';
var aux21;
if ((f2[0] == 'N') && (f1[0] == 'N')){
aux21 = 'N'
}else if(f2[0] == 'N'){
aux21=f1[0]
}else if(f1[0] == 'N'){
aux21=f2[0]
}else{
aux21= '('+f1[0]+' && '+f2[0]+')';
}
aux1[0]= aux21;
aux1[1] = aux11;
myList.push(aux1);
}
}
} else {
var lisA2 = this.generateFunctionAndExp(exp.exp1,graph,namefun6);
var lisB2 = this.generateFunctionAndExp(exp.exp2,graph,namefun6);
var aux2 = [];
for (var f1 of lisA2){
for (var f2 of lisB2){
var aux12 = '(('+f1[1]+')'+exp.op+'('+f2[1]+'))';
var aux22
if ((f2[0] == 'N') && (f1[0] == 'N')){
aux22 = 'N'
}else if (f2[0] == 'N'){
aux22 =f1[0]
}else if (f1[0] == 'N'){
aux22 =f2[0]
}else{
aux22= '('+f1[0]+' && '+f2[0]+')';
}
aux2[0]= aux22;
aux2[1] = aux12;
myList.push(aux2);
}
}
}
} else if (exp.kind == 'uop') {
var lisA3 = this.generateFunctionAndExp(exp.exp,graph,namefun6);
var aux3 = [];
for (var f1 of lisA3){
var aux13 = ' '+exp.op+' '+f1[1]+' ';
aux3[0]= f1[0];
aux3[1] = aux13;
myList.push(aux3);
}
} else if (exp.kind == 'app') {
if ((exp.fun == 'Math.cos') || (exp.fun == 'cos')) {
var aux4 = [];
var aux14 = 'Math.cos('+ exp.args.map(e => this.generarExpresion(e)).join() +')';
var aux24 = 'N'
aux4[0]= aux24;
aux4[1] = aux14;
myList.push(aux4);
} else if ((exp.fun == 'Math.sin') || (exp.fun == 'sin')) {
var aux5 = [];
var aux15 = 'Math.sin('+ exp.args.map(e => this.generarExpresion(e)).join() +')';
var aux25 = 'N'
aux5[0]= aux25;
aux5[1] = aux15;
myList.push(aux5);
} else if ((exp.fun == 'Math.round') || (exp.fun == 'round')){
var aux6 = [];
var aux16 = 'Math.round('+ exp.args.map(e => this.generarExpresion(e)).join() +')';
var aux26 = 'N'
aux6[0]= aux26;
aux6[1] = aux16;
myList.push(aux6);
}else{
if(!namefun6.includes(exp.fun)){
var ListnameFNew = namefun6;
ListnameFNew.push(exp.fun);
for (var fun5 of graph.funs){
if(fun5.fun == exp.fun){
myList = this.generateFunctionAndExp(fun5.bdy,graph,ListnameFNew);
}
}
}else{
var aux76 = [];
aux76[0] = 'N';
aux76[1] = exp.fun;
myList.push(aux76);
}
}
} else if (exp.kind == 'tup') {
var lisA7 = this.generateFunctionAndExp(exp.exps,graph,namefun6);
for (var f of lisA7){
var aux65 = [];
aux65[1] = '('+f[1]+')';
aux65[0] = f[0];
myList.push(aux65);
}
//Es esto o las combinaciones
// expresion = ' (' + exp.exps.map(e => this.generarExpresion(e)).join() + ') ';
} else if (exp.kind == 'lit') {
var aux8 = [];
aux8[0] = 'N';
aux8[1] = ' ' + exp.val + ' ';
myList.push(aux8);
} else if (exp.kind == 'var') {
var aux9 = [];
aux9[0] = 'N';
aux9[1] = ' ' + exp.var + ' ';
myList.push(aux9);
} else {
var aux54 = [];
aux54[0]= 'N';
aux54[1]='undefined';
myList.push(aux54);
}
return myList;
}
/////////////////////
createListExp = function (exp) {
var expresion = '';
var funcione = [];
if (exp.kind == 'cnd') {
funcione = this.createListExp(exp.cond);
} else if (exp.kind == 'bop') {
if (exp.op == '==') {
expresion = ' Math.abs((' + this.createListExp(exp.exp1)[0] + ') - (' + this.createListExp(exp.exp2)[0] + ')) == 0 ';
if(exp.exp1.kind == 'lit'){
this.valores.push(exp.exp1.val)
}
if(exp.exp2.kind == 'lit'){
this.valores.push(exp.exp2.val)
}
funcione.push(expresion)
} else if (exp.op == '/=') {
expresion = ' Math.abs((' + this.createListExp(exp.exp1) + ') - (' + this.createListExp(exp.exp2) + ')) != 0';
funcione.push(expresion)
} else if (exp.op == '^') {
expresion = ' Math.pow(' + this.createListExp(exp.exp1) + ',' + this.createListExp(exp.exp2) + ') ';
funcione.push(expresion)
} else if (exp.op == '&&'){
for (var atr of this.createListExp(exp.exp1)){
funcione.push(atr)
}
for (var atr2 of this.createListExp(exp.exp2)){
funcione.push(atr2)
}
}else if (exp.op == 'or'){
funcione.push('!'+this.createListExp(exp.exp1))
funcione.push('!'+this.createListExp(exp.exp2))
}else{
var lis1 = this.createListExp(exp.exp1)
var lis2 = this.createListExp(exp.exp2)
for(var expes1 of lis1){
for (var expes2 of lis2){
expresion = ' ((' + expes1 + ')' + exp.op + '(' + expes2 + ') )';
funcione.push(expresion)
}
}
}
} else if (exp.kind == 'uop') {
expresion = ' ' + exp.op + ' ' + this.createListExp(exp.exp) + ' ';
funcione.push(expresion)
} else if (exp.kind == 'app') {
if (exp.fun == 'Math.cos') {
exp.fun = 'Math.cos'
expresion = ' ' + exp.fun + '(' + exp.args.map(e => this.generarExpresion(e)).join() + ') ';
funcione.push(expresion)
} else if (exp.fun == 'Math.sin') {
exp.fun = 'Math.sin'
expresion = ' ' + exp.fun + '(' + exp.args.map(e => this.generarExpresion(e)).join() + ') ';
funcione.push(expresion)
} else if (exp.fun == 'Math.round') {
exp.fun = 'Math.round'
expresion = ' ' + exp.fun + '(' + exp.args.map(e => this.generarExpresion(e)).join() + ') ';
funcione.push(expresion)
}else{
expresion = ' ' + exp.fun + '(' + exp.args.map(e => this.generarExpresion(e)).join() + ') ';
funcione.push(expresion)
}
} else if (exp.kind == 'tup') {
expresion = ' (' + exp.exps.map(e => this.generarExpresion(e)).join() + ') ';
funcione.push(expresion)
} else if (exp.kind == 'lit') {
expresion = ' ' + exp.val + ' ';
this.valores.push(exp.val)
funcione.push(expresion)
} else if (exp.kind == 'var') {
expresion = ' ' + exp.var + ' ';
funcione.push(expresion)
} else {
expresion = 'undefined ';
funcione.push(expresion)
}
return funcione;
}
///////////////////// fin de nuevo
// Prueba 2019
generarFuncionDisc = function (graph) {
var funcionString = '';
var grafica;
var arrayFunction = [];
var fun = graph.funs[0];
var ListnameF = [];
ListnameF.push(fun.fun);
var funciones = this.generarExpresionDisc(fun.bdy,graph,ListnameF)
for (var funs of funciones){
funcionString = 'var ' + fun.fun + ' = function(' + fun.args.join() + '){\n return ' + funs + '}\n' + funcionString;
if (fun.fun == graph.graph) {
funcionString += ';return ' + fun.fun + '(' + fun.args.join() + ');\n'
grafica = fun;
}
funcionString = '(' + grafica.args.join() + ')=>{\n' + funcionString + '}';
arrayFunction.push(funcionString);
var funcionString = '';
}
var arrayFunction1 = [arrayFunction[0]]
return arrayFunction;
}
generarExpresionDisc = function (exp,grap,ListnameF) {
var expresion = '';
var funcione = [];
if (exp.kind == 'cnd') {
var con1 = this.generarExpresionDisc(exp.cond,grap,ListnameF);
var con11 = '';
for (var condi of con1){
if (con11 == ''){
con11 = condi;
}else{
con11 = '('+con11 +' && '+ condi +')';
}
}
for (var funs of this.generarExpresionDisc(exp.exp1,grap,ListnameF)){
funcione.push('('+con11+' ? '+ funs +' : undefined)');
}
for (var funs2 of this.generarExpresionDisc(exp.exp2,grap,ListnameF)){
for (var condi2 of con1){
funcione.push('(!('+condi2+') ? '+ funs2 +' : undefined)');
}
}
} else if (exp.kind == 'bop') {
if (exp.op == '==') {
expresion = ' Math.abs((' + this.generarExpresionDisc(exp.exp1,grap,ListnameF) + ') - (' + this.generarExpresionDisc(exp.exp2,grap,ListnameF) + ')) == 0 ';
if(exp.exp1.kind == 'lit'){
this.valores.push(exp.exp1.val)
}
if(exp.exp2.kind == 'lit'){
this.valores.push(exp.exp2.val)
}
funcione.push(expresion)
} else if (exp.op == '/=') {
expresion = ' Math.abs((' + this.generarExpresionDisc(exp.exp1,grap,ListnameF) + ') - (' + this.generarExpresionDisc(exp.exp2,grap,ListnameF) + ')) != 0';
funcione.push(expresion)
} else if (exp.op == '^') {
expresion = ' Math.pow(' + this.generarExpresionDisc(exp.exp1,grap,ListnameF) + ',' + this.generarExpresionDisc(exp.exp2,grap,ListnameF) + ') ';
funcione.push(expresion)
} else if (exp.op == '&&'){
for (var atr of this.generarExpresionDisc(exp.exp1,grap,ListnameF)){
funcione.push(atr)
}
for (var atr2 of this.generarExpresionDisc(exp.exp2,grap,ListnameF)){
funcione.push(atr2)
}
}else if (exp.op == 'or'){
funcione.push('!'+this.generarExpresionDisc(exp.exp1,grap,ListnameF))
funcione.push('!'+this.generarExpresionDisc(exp.exp2,grap,ListnameF))
}else{
var lis1 = this.generarExpresionDisc(exp.exp1,grap,ListnameF)
var lis2 = this.generarExpresionDisc(exp.exp2,grap,ListnameF)
for(var expes1 of lis1){
for (var expes2 of lis2){
expresion = ' ((' + expes1 + ')' + exp.op + '(' + expes2 + ') )';
funcione.push(expresion)
}
}
}
} else if (exp.kind == 'uop') {
expresion = ' ' + exp.op + ' ' + this.generarExpresionDisc(exp.exp,grap,ListnameF) + ' ';
funcione.push(expresion)
} else if (exp.kind == 'app') {
if (exp.fun == 'Math.cos') {
exp.fun = 'Math.cos'
expresion = ' ' + exp.fun + '(' + exp.args.map(e => this.generarExpresionDisc(e,grap,ListnameF)).join() + ') ';
funcione.push(expresion)
} else if (exp.fun == 'Math.sin') {
exp.fun = 'Math.sin'
expresion = ' ' + exp.fun + '(' + exp.args.map(e => this.generarExpresionDisc(e,grap,ListnameF)).join() + ') ';
funcione.push(expresion)
} else if (exp.fun == 'Math.round') {
exp.fun = 'Math.round'
expresion = ' ' + exp.fun + '(' + exp.args.map(e => this.generarExpresionDisc(e,grap,ListnameF)).join() + ') ';
funcione.push(expresion)
}else{
if(!ListnameF.includes(exp.fun)){
var ListnameFNew = ListnameF;
ListnameFNew.push(exp.fun);
for (var fun5 of grap.funs){
if(fun5.fun == exp.fun){
var funresul = this.generarExpresionDisc(fun5.bdy,grap,ListnameFNew);
for (var subfunciones of funresul){
funcione.push(subfunciones);
}
}
}
}else{
funcione.push(exp.fun);
}
}
} else if (exp.kind == 'tup') {
expresion = ' (' + exp.exps.map(e => this.generarExpresionDisc(e,grap,ListnameF)).join() + ') ';
funcione.push(expresion)
} else if (exp.kind == 'lit') {
expresion = ' ' + exp.val + ' ';
this.valores.push(exp.val)
funcione.push(expresion)
} else if (exp.kind == 'var') {
expresion = ' ' + exp.var + ' ';
funcione.push(expresion)
} else {
expresion = ' undefined ';
funcione.push(expresion)
}
return funcione;
}
//Prueba 2019 fin
//Nuevo 20-07-2018
obtenerConjunto = function (grf) {
var setf = '\"sets\": {';
......@@ -786,9 +1500,9 @@ export class Graph2DComponent {
} else if (grf.cod == 'Z') {
dominio += "\"baseCod\": \"Z\", \"cod\": \"Z\" ,";
setf += "\"fcod\": \"Z\"";
// } else if (grf.cod == 'N') {
// dominio += "\"baseCod\": \"N\", \"cod\": \"N\" ,";
// setf += "\"fcod\": \"N\"";
} else if (grf.cod == 'N') {
dominio += "\"baseCod\": \"N\", \"cod\": \"N\" ,";
setf += "\"fcod\": \"N\"";
} else {
var nom = grf.cod;
if (Array.isArray(grf.sets[0][nom])) {
......@@ -807,12 +1521,19 @@ export class Graph2DComponent {
return dominio + setf + "}}";
}
recursionfuncion = function (func, nombre) {
var fun = func[0][nombre].set;
var resul = "";
if (fun == 'R' || fun == 'Z' || fun == 'N') {
resul += this.generarF(func[0][nombre].cond);
} else {
resul += this.generarF(func[0][nombre].cond) + " && " + this.recursionfuncion(func, fun);
}
......@@ -825,8 +1546,8 @@ export class Graph2DComponent {
domin += "\"radio\": 0.3, \"baseDom\": \"R\", \"dom\": \"Func\"";
} else if (sets[0][nom].set == 'Z') {
domin += "\"radio\": 2, \"baseDom\": \"Z\", \"dom\": \"Func\"";
// } else if (sets[0][nom].set == 'N') {
// domin += "\"radio\": 2, \"baseDom\": \"N\", \"dom\": \"Func\"";
} else if (sets[0][nom].set == 'N') {
domin += "\"radio\": 2, \"baseDom\": \"N\", \"dom\": \"Func\"";
} else {
var nombre = sets[0][nom].set;
domin = this.recursivoDom(sets, nombre);
......@@ -841,8 +1562,8 @@ export class Graph2DComponent {
coodo += "\"baseCod\": \"R\", \"cod\": \"Func\",";
} else if (sets[0][nom].set == 'Z') {
coodo += "\"baseCod\": \"Z\", \"cod\": \"Func\",";
// } else if (sets[0][nom].set == 'N') {
// coodo += "\"baseCod\": \"N\", \"cod\": \"Func\",";
} else if (sets[0][nom].set == 'N') {
coodo += "\"baseCod\": \"N\", \"cod\": \"Func\",";
} else {
var nombre = sets[0][nom].set;
coodo += this.recursivoDom(sets, nombre);
......@@ -858,7 +1579,7 @@ export class Graph2DComponent {
if (exp.op == '==') {
expresion = ' Math.abs((' + this.generarF(exp.exp1) + ') - (' + this.generarF(exp.exp2) + ')) == 0 ';
} else if (exp.op == '/=') {
expresion = ' Math.abs((' + this.generarF(exp.exp1) + ') - (' + this.generarF(exp.exp2) + ')) != 0';
expresion = ' Math.abs((' + this.generarF(exp.exp1) + ') - (' + this.generarF(exp.exp2) + ')) != 0 ';
} else if (exp.op == '^') {
expresion = ' Math.pow(' + this.generarF(exp.exp1) + ',' + this.generarF(exp.exp2) + ') ';
} else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment