Merge branch 'master' of https://git.ad5001.eu/Ad5001/LogarithmPlotter
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Ad5001 2022-01-19 19:00:15 +01:00
commit 21714cf475
59 changed files with 299 additions and 72 deletions

1
.gitignore vendored
View file

@ -10,6 +10,7 @@ linux/flatpak/.flatpak-builder
*.zip *.zip
**/**.qmlc **/**.qmlc
**/**.jsc **/**.jsc
**/**.pyc
*.jsc *.jsc
*.qmlc *.qmlc
.DS_Store .DS_Store

25
CHANGELOG.md Normal file
View file

@ -0,0 +1,25 @@
# Changelog
## v0.1.3 (18 Jan 2022)
* Fixed bug: Confined packages (snapcraft & flatpak) won't show error messages related to update checks.
* FIxed bug: Equations of the form (x + y) / z were not being simplified properly.
-- Ad5001 <mail@ad5001.eu> Wed, 19 Jan 2022 20:00:00 +0100
## v0.1.2 (30 Sep 2021)
* Fixed bug: Unable to move Bode diagrams elements when having deleted the sum element.
* Fixed bug: Names were not not being changed from previous object when editing a new one.
* Fixed bug: Bode Magnitude was not drawn far enough
* Fixed bug: Bode Magnitude had undefined ending.
* Fixed other bugs from v0.1.1.
-- Ad5001 <mail@ad5001.eu> Mon, 30 Sep 2021 20:00:00 +0100
## v0.1 (26 Aug 2021)
* Initial release.
-- Ad5001 <mail@ad5001.eu> Mon, 06 Jun 2021 08:48:28 +0100

View file

@ -1,6 +1,6 @@
""" """
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
""" """
from shutil import which from shutil import which
__VERSION__ = "0.1.2" __VERSION__ = "0.1.3"
is_release = False is_release = False

View file

@ -1,6 +1,6 @@
""" """
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
""" """
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
""" """
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
""" """
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -85,7 +85,7 @@ D.Dialog {
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
textFormat: Text.RichText textFormat: Text.RichText
font.pixelSize: 13 font.pixelSize: 13
text: "Copyright © 2021 Ad5001 &lt;mail@ad5001.eu&gt;<br> text: "Copyright © 2022 Ad5001 &lt;mail@ad5001.eu&gt;<br>
<br> <br>
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.<br> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.<br>
<br> <br>

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,7 +1,7 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -0,0 +1,160 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
.import "expr-eval.js" as ExprEval
// Puts element within parenthesis
function par(elem) {
return '(' + elem + ')'
}
// checks if the element contains a string, and returns the parenthesis version if so.
function parif(elem, contents) {
return contents.some(elem.includes) ? par(elem) : elem
}
// Adpation of expressionToString for latex
function expressionToLatex(tokens) {
var nstack = [];
var n1, n2, n3;
var f, args, argCount;
for (var i = 0; i < tokens.length; i++) {
var item = tokens[i];
var type = item.type;
switch(type) {
case ExprEval.INUMBER:
if (typeof item.value === 'number' && item.value < 0) {
nstack.push(par(item.value));
} else if (Array.isArray(item.value)) {
nstack.push('[' + item.value.map(escapeValue).join(', ') + ']');
} else {
nstack.push(escapeValue(item.value));
}
break;
case ExprEval.IOP2:
n2 = nstack.pop();
n1 = nstack.pop();
f = item.value;
switch(f) {
case '-':
case '+':
nstack.push(n1 + this.ope + n2);
break;
case '||':
case 'or':
case '&&':
case 'and':
case '==':
case '!=':
nstack.push(par(n1) + this.ope + par(n2));
break;
case '*':
nstack.push(parif(n1,['+','-']) + " \\times " + parif(n2,['+','-']));
break;
case '/':
nstack.push("\\frac{" + n1 + "}{" + n2 + "}");
break;
case '^':
nstack.push(parif(n1,['+','-','*','/','!']) + "^{" + n2 + "}");
break;
case '%':
nstack.push(parif(n1,['+','-','*','/','!','^']) + " \\mathrm{mod} " + parif(n2,['+','-','*','/','!','^']));
break;
case '[':
nstack.push(n1 + '[' + n2 + ']');
break;
default:
throw new EvalError("Unknown operator " + ope + ".");
}
break;
case ExprEval.IOP3: // Thirdiary operator
n3 = nstack.pop();
n2 = nstack.pop();
n1 = nstack.pop();
f = item.value;
if (f === '?') {
nstack.push('(' + n1 + ' ? ' + n2 + ' : ' + n3 + ')');
} else {
throw new EvalError('Unknown operator ' + ope + '.');
}
break;
case ExprEval.IVAR:
case ExprEval.IVARNAME:
nstack.push(item.value);
break;
case ExprEval.IOP1: // Unary operator
n1 = nstack.pop();
f = item.value;
switch(f) {
case '-':
case '+':
nstack.push(par(f + n1));
break;
case '!':
nstack.push(parif(n1,['+','-','*','/','^']) + '!');
break;
default:
nstack.push(f + parif(n1,['+','-','*','/','^']));
break;
}
break;
case ExprEval.IFUNCALL:
argCount = item.value;
args = [];
while (argCount-- > 0) {
args.unshift(nstack.pop());
}
f = nstack.pop();
nstack.push(f + '(' + args.join(', ') + ')');
break;
case ExprEval.IFUNDEF:
nstack.push(par(n1 + '(' + args.join(', ') + ') = ' + n2));
break;
case ExprEval.IMEMBER:
n1 = nstack.pop();
nstack.push(n1 + '.' + item.value);
break;
case ExprEval.IARRAY:
argCount = item.value;
args = [];
while (argCount-- > 0) {
args.unshift(nstack.pop());
}
nstack.push('[' + args.join(', ') + ']');
break;
case ExprEval.IEXPR:
nstack.push('(' + expressionToLatex(item.value) + ')');
break;
case ExprEval.IENDSTATEMENT:
break;
default:
throw new EvalError('invalid Expression');
break;
}
}
if (nstack.length > 1) {
if (toJS) {
nstack = [ nstack.join(',') ];
} else {
nstack = [ nstack.join(';') ];
}
}
return Utils.makeExpressionReadable(String(nstack[0]));
}

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -135,16 +135,18 @@ class Function extends Common.ExecutableObject {
var previousY; var previousY;
if(definitionDomain instanceof MathLib.SpecialDomain && definitionDomain.moveSupported) { if(definitionDomain instanceof MathLib.SpecialDomain && definitionDomain.moveSupported) {
// Point based functions. // Point based functions.
previousX = definitionDomain.previous(previousX) previousX = definitionDomain.next(previousX)
if(previousX === null) previousX = definitionDomain.next(canvas.px2x(0)) if(previousX === null) previousX = definitionDomain.next(canvas.px2x(0))
previousY = expr.execute(previousX) previousY = expr.execute(previousX)
if(!drawPoints && !drawDash) return if(!drawPoints && !drawDash) return
while(previousX !== null && canvas.x2px(previousX) < canvas.canvasSize.width) { while(previousX !== null && canvas.x2px(previousX) < canvas.canvasSize.width) {
var currentX = definitionDomain.next(previousX) // Reconverted for canvas to fix for logarithmic scales.
var currentX = definitionDomain.next(canvas.px2x(canvas.x2px(previousX)+pxprecision));
var currentY = expr.execute(currentX) var currentY = expr.execute(currentX)
if(currentX === null) break; if(currentX === null) break;
if((definitionDomain.includes(currentX) || definitionDomain.includes(previousX)) && if((definitionDomain.includes(currentX) || definitionDomain.includes(previousX)) &&
(destinationDomain.includes(currentY) || destinationDomain.includes(previousY))) { (destinationDomain.includes(currentY) || destinationDomain.includes(previousY))) {
console.log(drawDash, drawPoints)
if(drawDash) if(drawDash)
canvas.drawDashedLine(ctx, canvas.x2px(previousX), canvas.y2px(previousY), canvas.x2px(currentX), canvas.y2px(currentY)) canvas.drawDashedLine(ctx, canvas.x2px(previousX), canvas.y2px(previousY), canvas.x2px(currentX), canvas.y2px(currentY))
if(drawPoints) { if(drawPoints) {

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/** /**
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -134,7 +134,7 @@ function simplifyExpression(str) {
], ],
[ // Decomposition way 2 [ // Decomposition way 2
/(^.?|[+-] |\()\((([-.\d\w] [*/] )?[-\d\w.]+) ([+\-]) (([-.\d\w] [*/] )?[\d\w.+]+)\) ([*/]) ([-.\d\w]+)(.?$| [+-]|\))/g, /(^.?|[+-] |\()\((([-.\d\w] [*/] )?[-\d\w.]+) ([+\-]) (([-.\d\w] [*/] )?[\d\w.+]+)\) ([*/]) ([-.\d\w]+)(.?$| [+-]|\))/g,
"$1$8 $7 $2 $4 $8 $7 $5$9" "$1$2 $7 $8 $4 $5 $7 $8$9"
], ],
[ // Factorisation of π elements. [ // Factorisation of π elements.
/(([-\d\w.]+ [*/] )*)(pi|π)(( [/*] [-\d\w.]+)*) ([+-]) (([-\d\w.]+ [*/] )*)(pi|π)(( [/*] [-\d\w.]+)*)?/g, /(([-\d\w.]+ [*/] )*)(pi|π)(( [/*] [-\d\w.]+)*) ([+-]) (([-\d\w.]+ [*/] )*)(pi|π)(( [/*] [-\d\w.]+)*)?/g,
@ -199,7 +199,7 @@ function simplifyExpression(str) {
} }
], ],
[// Starting & ending parenthesis if not needed. [// Starting & ending parenthesis if not needed.
/^\((.*)\)$/g, /^\s*\((.*)\)\s*$/g,
function(match, middle) { function(match, middle) {
var str = middle var str = middle
// Replace all groups // Replace all groups

View file

@ -1,6 +1,6 @@
""" """
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -19,6 +19,7 @@
from PySide2.QtCore import Qt, QRunnable, QThreadPool, QThread, QObject, Signal from PySide2.QtCore import Qt, QRunnable, QThreadPool, QThread, QObject, Signal
from urllib.request import urlopen from urllib.request import urlopen
from urllib.error import HTTPError, URLError from urllib.error import HTTPError, URLError
from sys import argv
class UpdateInformation(QObject): class UpdateInformation(QObject):
got_update_info = Signal(bool, str, bool) got_update_info = Signal(bool, str, bool)
@ -67,7 +68,8 @@ def check_for_updates(current_version, window):
""" """
Checks for updates in the background, and sends an alert with information. Checks for updates in the background, and sends an alert with information.
""" """
if "--no-check-for-updates" in argv:
return #
def cb(show_alert, msg_text, update_available): def cb(show_alert, msg_text, update_available):
pass pass
if show_alert: if show_alert:

View file

@ -1,5 +1,7 @@
# ![icon](https://git.ad5001.eu/Ad5001/LogarithmicPlotter/raw/branch/master/logplotter.svg) LogarithmPlotter # ![icon](https://git.ad5001.eu/Ad5001/LogarithmPlotter/raw/branch/master/logplotter.svg) LogarithmPlotter
[![Build Status](https://ci.ad5001.eu/api/badges/Ad5001/LogarithmPlotter/status.svg)](https://ci.ad5001.eu/Ad5001/LogarithmicPlotter) [![Build Status](https://ci.ad5001.eu/api/badges/Ad5001/LogarithmPlotter/status.svg)](https://ci.ad5001.eu/Ad5001/LogarithmPlotter)
[![On flathub](https://img.shields.io/flathub/v/eu.ad5001.LogarithmPlotter?label=on%20flathub)](https://flathub.org/apps/details/eu.ad5001.LogarithmPlotter)
[![On Snapcraft](https://badgen.net/snapcraft/v/logarithmplotter?label=on%20snapcraft)](https://snapcraft.io/logarithmplotter)
Create graphs with logarithm scales, namely BODE diagrams. Create graphs with logarithm scales, namely BODE diagrams.

View file

@ -1,3 +1,10 @@
logarithmplotter (0.1.3) stable; urgency=medium
* Fixed bug: Confined packages (snapcraft & flatpak) won't show error messages related to update checks.
* FIxed bug: Equations of the form (x + y) / z were not being simplified properly.
-- Ad5001 <mail@ad5001.eu> Wed, 19 Jan 2022 20:00:00 +0100
logarithmplotter (0.1.2) unstable; urgency=medium logarithmplotter (0.1.2) unstable; urgency=medium
* Fixed bug: Unable to move Bode diagrams elements when having deleted the sum element. * Fixed bug: Unable to move Bode diagrams elements when having deleted the sum element.
@ -6,10 +13,10 @@ logarithmplotter (0.1.2) unstable; urgency=medium
* Fixed bug: Bode Magnitude had undefined ending. * Fixed bug: Bode Magnitude had undefined ending.
* Fixed other bugs from v0.1.1. * Fixed other bugs from v0.1.1.
-- Ad5001 <mail@ad5001.eu> Mon, 30 Sep 2021 20:00:00 +0200 -- Ad5001 <mail@ad5001.eu> Mon, 30 Sep 2021 20:00:00 +0100
logarithmplotter (0.1.dev0) UNRELEASED; urgency=medium logarithmplotter (0.1) UNRELEASED; urgency=medium
* Initial release. * Initial release.
-- Ad5001 <mail@ad5001.eu> Mon, 06 Jun 2021 08:48:28 +0200 -- Ad5001 <mail@ad5001.eu> Thu, 26 Aug 2021 08:48:28 +0100

View file

@ -30,8 +30,8 @@
</description> </description>
<categories> <categories>
<category>Network</category> <category>Science</category>
<category>Feed</category> <category>Education</category>
</categories> </categories>
<url type="homepage">https://apps.ad5001.eu/logarithmplotter/</url> <url type="homepage">https://apps.ad5001.eu/logarithmplotter/</url>
<url type="bugtracker">https://git.ad5001.eu/Ad5001/LogarithmPlotter/issues/</url> <url type="bugtracker">https://git.ad5001.eu/Ad5001/LogarithmPlotter/issues/</url>
@ -41,10 +41,13 @@
<screenshot>https://apps.ad5001.eu/img/en/logarithmplotter/welcome.png</screenshot> <screenshot>https://apps.ad5001.eu/img/en/logarithmplotter/welcome.png</screenshot>
</screenshots> </screenshots>
<releases> <releases>
<release version="0.1.3" date="2022-01-19"/>
<release version="0.1.2" date="2021-09-30"/>
<release version="0.1" date="2021-08-15"/> <release version="0.1" date="2021-08-15"/>
</releases> </releases>
<content_rating type="oars-1.0"> <content_rating type="oars-1.0">
</content_rating> </content_rating>
<developer_name>Ad5001</developer_name>
<update_contact>mail@ad5001.eu</update_contact> <update_contact>mail@ad5001.eu</update_contact>
</application> </application>

View file

@ -30,8 +30,8 @@
</description> </description>
<categories> <categories>
<category>Network</category> <category>Science</category>
<category>Feed</category> <category>Education</category>
</categories> </categories>
<url type="homepage">https://apps.ad5001.eu/logarithmplotter/</url> <url type="homepage">https://apps.ad5001.eu/logarithmplotter/</url>
<url type="bugtracker">https://git.ad5001.eu/Ad5001/LogarithmPlotter/issues/</url> <url type="bugtracker">https://git.ad5001.eu/Ad5001/LogarithmPlotter/issues/</url>
@ -41,10 +41,13 @@
<screenshot>https://apps.ad5001.eu/img/en/logarithmplotter/welcome.png</screenshot> <screenshot>https://apps.ad5001.eu/img/en/logarithmplotter/welcome.png</screenshot>
</screenshots> </screenshots>
<releases> <releases>
<release version="0.1.3" date="2022-01-19"/>
<release version="0.1.2" date="2021-09-30"/>
<release version="0.1" date="2021-08-15"/> <release version="0.1" date="2021-08-15"/>
</releases> </releases>
<content_rating type="oars-1.0"> <content_rating type="oars-1.0">
</content_rating> </content_rating>
<developer_name>Ad5001</developer_name>
<update_contact>mail@ad5001.eu</update_contact> <update_contact>mail@ad5001.eu</update_contact>
</application> </application>

View file

@ -0,0 +1,16 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=LogarithmPlotter
GenericName=2D plotter software
GenericName[fr]=Logiciel de traçage 2D
Comment=Create BODE diagrams, sequences and repartition functions.
Comment[fr]=Créer des diagrammes de BODE, des suites et des fonctions de répartition.
TryExec=logarithmplotter
Exec=logarithmplotter --no-check-for-updates %f
Icon=logarithmplotter
MimeType=application/x-logarithm-plot;
Terminal=false
StartupNotify=false
Categories=Math

View file

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# #
# AccountFree - Browse and use online services, free of account. # AccountFree - Browse and use online services, free of account.
# Copyright (C) 2021 Ad5001 <mail@ad5001.eu> # Copyright (C) 2022 Ad5001 <mail@ad5001.eu>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by

View file

@ -11,4 +11,4 @@ set \
#export QT_QPA_PLATFORMTHEME=kde #export QT_QPA_PLATFORMTHEME=kde
# Finally run the next part of the command chain # Finally run the next part of the command chain
exec "${@}" exec "${@} --no-check-for-updates"

View file

@ -1,8 +1,8 @@
#!/bin/bash #!/bin/bash
python3 setup.py --remove-git-version --command-packages=stdeb.command sdist_dsc \ python3 setup.py --remove-git-version --command-packages=stdeb.command sdist_dsc \
--package logarithmplotter --copyright-file linux/debian/copyright --suite hirsute --depends3 "$(cat linux/debian/depends)" --section science \ --package logarithmplotter --copyright-file linux/debian/copyright --suite sid --depends3 "$(cat linux/debian/depends)" --section science \
--upstream-version-suffix "-patch1" --debian-version "ppa1" bdist_deb --debian-version "ppa1" bdist_deb
# Flatpak building # Flatpak building
FLATPAK_BUILDER=$(which flatpak-builder) FLATPAK_BUILDER=$(which flatpak-builder)

View file

@ -1,6 +1,6 @@
""" """
* LogarithmPlotter - Create graphs with logarithm scales. * LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -86,7 +86,7 @@ if sys.platform == 'linux':
data_files.append(('share/mime/packages/', ['linux/x-logarithm-plot.xml'])) data_files.append(('share/mime/packages/', ['linux/x-logarithm-plot.xml']))
data_files.append(('share/icons/hicolor/scalable/mimetypes/', ['linux/application-x-logarithm-plot.svg'])) data_files.append(('share/icons/hicolor/scalable/mimetypes/', ['linux/application-x-logarithm-plot.svg']))
data_files.append(('share/icons/hicolor/scalable/apps/', ['logplotter.svg'])) data_files.append(('share/icons/hicolor/scalable/apps/', ['logplotter.svg']))
"""data_files.append((os.environ["PREFIX"] + '/applications/', ['linux/logarithmplotter.desktop'])) data_files.append((os.environ["PREFIX"] + '/applications/', ['linux/logarithmplotter.desktop']))
data_files.append((os.environ["PREFIX"] + '/mime/packages/', ['linux/x-logarithm-plot.xml'])) data_files.append((os.environ["PREFIX"] + '/mime/packages/', ['linux/x-logarithm-plot.xml']))
data_files.append((os.environ["PREFIX"] + '/icons/hicolor/scalable/mimetypes/', ['linux/application-x-logarithm-plot.svg'])) data_files.append((os.environ["PREFIX"] + '/icons/hicolor/scalable/mimetypes/', ['linux/application-x-logarithm-plot.svg']))
data_files.append((os.environ["PREFIX"] + '/icons/hicolor/scalable/apps/', ['logplotter.svg'])) data_files.append((os.environ["PREFIX"] + '/icons/hicolor/scalable/apps/', ['logplotter.svg']))
@ -98,7 +98,6 @@ if sys.platform == 'linux':
os.makedirs(os.environ["PREFIX"] + '/icons/hicolor/scalable/mimetypes/', exist_ok=True) os.makedirs(os.environ["PREFIX"] + '/icons/hicolor/scalable/mimetypes/', exist_ok=True)
os.makedirs(os.environ["PREFIX"] + '/icons/hicolor/scalable/apps/', exist_ok=True) os.makedirs(os.environ["PREFIX"] + '/icons/hicolor/scalable/apps/', exist_ok=True)
os.makedirs(os.environ["PREFIX"] + '/metainfo/', exist_ok=True) os.makedirs(os.environ["PREFIX"] + '/metainfo/', exist_ok=True)
copyfile(current_dir + '/linux/logarithmplotter.desktop', os.environ["PREFIX"] + '/applications/logarithmplotter.desktop')
copyfile(current_dir + '/linux/x-logarithm-plot.xml', os.environ["PREFIX"] + '/mime/packages/x-logarithm-plot.xml') copyfile(current_dir + '/linux/x-logarithm-plot.xml', os.environ["PREFIX"] + '/mime/packages/x-logarithm-plot.xml')
copyfile(current_dir + '/linux/application-x-logarithm-plot.svg', copyfile(current_dir + '/linux/application-x-logarithm-plot.svg',
os.environ["PREFIX"] + '/icons/hicolor/scalable/mimetypes/application-x-logarithm-plot.svg') os.environ["PREFIX"] + '/icons/hicolor/scalable/mimetypes/application-x-logarithm-plot.svg')
@ -106,11 +105,18 @@ if sys.platform == 'linux':
if "FLATPAK_INSTALL" in os.environ: if "FLATPAK_INSTALL" in os.environ:
copyfile(current_dir + '/linux/eu.ad5001.LogarithmPlotter.metainfo.flatpak.xml', copyfile(current_dir + '/linux/eu.ad5001.LogarithmPlotter.metainfo.flatpak.xml',
os.environ["PREFIX"] + '/metainfo/eu.ad5001.LogarithmPlotter.metainfo.xml') os.environ["PREFIX"] + '/metainfo/eu.ad5001.LogarithmPlotter.metainfo.xml')
copyfile(current_dir + '/linux/flatpak/logarithmplotter.desktop',
os.environ["PREFIX"] + '/applications/logarithmplotter.desktop')
else:
copyfile(current_dir + '/linux/eu.ad5001.LogarithmPlotter.metainfo.xml',
os.environ["PREFIX"] + '/metainfo/eu.ad5001.LogarithmPlotter.metainfo.xml')
copyfile(current_dir + '/linux/logarithmplotter.desktop',
os.environ["PREFIX"] + '/applications/logarithmplotter.desktop')
elif sys.argv[1] == "uninstall": elif sys.argv[1] == "uninstall":
os.remove(os.environ["PREFIX"] + '/applications/logarithmplotter.desktop') os.remove(os.environ["PREFIX"] + '/applications/logarithmplotter.desktop')
os.remove(os.environ["PREFIX"] + '/mime/packages/x-logarithm-plot.xml') os.remove(os.environ["PREFIX"] + '/mime/packages/x-logarithm-plot.xml')
os.remove(os.environ["PREFIX"] + '/icons/hicolor/scalable/mimetypes/application-x-logarithm-plot.svg') os.remove(os.environ["PREFIX"] + '/icons/hicolor/scalable/mimetypes/application-x-logarithm-plot.svg')
os.remove(os.environ["PREFIX"] + '/icons/hicolor/scalable/apps/logplotter.svg')""" os.remove(os.environ["PREFIX"] + '/icons/hicolor/scalable/apps/logplotter.svg')
setuptools.setup( setuptools.setup(
install_requires=([] if "FLATPAK_INSTALL" in os.environ else ["PySide2"]), install_requires=([] if "FLATPAK_INSTALL" in os.environ else ["PySide2"]),
@ -119,7 +125,7 @@ setuptools.setup(
name='logarithmplotter', name='logarithmplotter',
version=pkg_version, version=pkg_version,
description='Browse and use online services, free of account', description='Create graphs with logarithm scales.',
long_description=read_file("README.md"), long_description=read_file("README.md"),
keywords='logarithm plotter graph creator bode diagram', keywords='logarithm plotter graph creator bode diagram',

View file

@ -1,6 +1,6 @@
name: logarithmplotter name: logarithmplotter
title: LogarithmPlotter title: LogarithmPlotter
version: '0.1.2' version: '0.1.3'
summary: 2D plotter software to make BODE plots, sequences and repartition functions. summary: 2D plotter software to make BODE plots, sequences and repartition functions.
description: | description: |
LogarithmPlotter is, as it's name suggests, a plotter made with logarithm scales in mind. With an object system similar to [Geogebra](https://geogebra.org)'s, it allows dynamic creation of plots with very few limitations. LogarithmPlotter is, as it's name suggests, a plotter made with logarithm scales in mind. With an object system similar to [Geogebra](https://geogebra.org)'s, it allows dynamic creation of plots with very few limitations.

View file

@ -157,7 +157,7 @@ Section ""
File *.dll File *.dll
File *.pyd File *.pyd
File *.md File *.md
File *.manifest ;File *.manifest
File *.zip File *.zip
File *.bmp File *.bmp
File *.ico File *.ico