update
This commit is contained in:
parent
378cb98859
commit
a3290fb03f
5 changed files with 23 additions and 10 deletions
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
# kdevelop
|
||||
.kde*
|
||||
*.kdev4
|
||||
bin/*
|
12
index.html
12
index.html
|
@ -33,13 +33,17 @@
|
|||
</p>
|
||||
<p>Je to tedy jednoduchý kalkulátor, jde napsat výraz s normální notací (+-*/^), obsahující čísla (i desetinná),
|
||||
který to normálně vyhodnotí. Postupně přibyly proměnné (jen písmenkové řetězce), které mohou mít i rozsah ve
|
||||
kterém se pak výraz zobrazí jako funkce. Komentáře jsou ve složených závorkách. Vložené matematické funkce
|
||||
kterém se pak výraz zobrazí jako funkce. Syntaxe je <br>
|
||||
proměnná = dolní_mez , horní_mez , počet_bodů<br>
|
||||
a použije se pro vodorovnou osu, poslední řádek je pak výraz, jehož hodnota je na svislé ose. Ostatní "proměnné"
|
||||
jsou pak fakticky jen pojmenované konstanty. Zobrazovaných funkcí (výrazů) může být víc, první určí limity
|
||||
zobrazení na ose "y". Komentáře jsou ve složených závorkách. Vložené matematické funkce
|
||||
jsou sin(), cos(), exp(), log() (přirozené).<b>Na konci výrazu musí být ENTER.</b>
|
||||
</p>
|
||||
<p>Jsou v tom chyby, celé je to vlasně hloupost, celé by to šlo napsat v javascriptu mnohem jednodušeji,
|
||||
ale v podstatě to funguje a jde si podle toho udělat představu, jak daná funkce vypadá. Zdrojáky v licenci
|
||||
MIT <a href="flex.zip">přikládám</a>. Pro kompilaci je použit jen clang a jím kompilovaná C-čková knihovna
|
||||
<a href="https://sourceware.org/newlib/" target="_blank">newlib</a>.
|
||||
ale v podstatě to funguje a jde si podle toho udělat představu, jak daná funkce vypadá. Odkaz na zdrojáky v licenci
|
||||
MIT <a href="https://code.nolog.cz/Kizarm/Calculator" target="_blank">přikládám</a>. Pro kompilaci je použit jen
|
||||
clang a jím kompilovaná C-čková knihovna <a href="https://sourceware.org/newlib/" target="_blank">newlib</a>.
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
|
|
8
index.js
8
index.js
|
@ -28,7 +28,6 @@ window.onload = async function() {
|
|||
const utf8decoder = new TextDecoder();
|
||||
const obj = JSON.parse (utf8decoder.decode(view));
|
||||
// console.log (obj);
|
||||
if (!obj) obj = '{"name":"nothing"}';
|
||||
polyLine (xview, yview, len, obj);
|
||||
},
|
||||
},
|
||||
|
@ -86,13 +85,16 @@ function drawLine (ctx, line, x, y) {
|
|||
}
|
||||
ctx.stroke();
|
||||
}
|
||||
const colors = ['#00ff00', '#ff0000', '#00ffff', '#ff00ff'];
|
||||
var colorIndex = 0;
|
||||
function polyLine (ax, ay, len, obj) {
|
||||
// console.log (ax, ay);
|
||||
const ctx = canvas.getContext("2d");
|
||||
if (obj.name === "axes") {
|
||||
colorIndex = 0;
|
||||
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
||||
ctx.font = '16px serif';
|
||||
ctx.textAlign = 'left';
|
||||
if (obj.name === "axes") {
|
||||
drawLine (ctx, obj.x, 0, 0);
|
||||
drawLine (ctx, obj.y, 0, 0);
|
||||
const ndotsx = obj.xdots.length;
|
||||
|
@ -106,7 +108,7 @@ function polyLine (ax, ay, len, obj) {
|
|||
ctx.lineTo(ax[n], ay[n]);
|
||||
}
|
||||
ctx.lineWidth = 3;
|
||||
ctx.strokeStyle = "#00ff00";
|
||||
ctx.strokeStyle = colors [colorIndex++ % 4];
|
||||
ctx.stroke();
|
||||
}
|
||||
async function getFile (name) {
|
||||
|
|
BIN
module.wasm
BIN
module.wasm
Binary file not shown.
5
test.txt
5
test.txt
|
@ -2,6 +2,9 @@
|
|||
max=10
|
||||
x=-max,max,1000
|
||||
a=1/4
|
||||
z=10
|
||||
omega=2*pi
|
||||
phi=omega/4
|
||||
1.e-8 * sin (omega*x - phi) * exp (-(x*a)^2)
|
||||
z * sin (omega*x + phi) * exp (-(x*a)^2)
|
||||
z * exp (-(x*a)^2) {kladná obálka}
|
||||
-z * exp (-(x*a)^2) {záporná obálka}
|
||||
|
|
Loading…
Reference in a new issue