Grafika na spletni strani, Javascript in HTML5

Matematik želi prikazati matematično grafiko na zaslonu, po možnosti na spletni strani in -še bolj zaželjeno – po možnosti dinamično. Na začetku je te prikaze sprogramiral sam. Nato pa je bila v preteklih desetletjih razvita vrsta orodij, od tistih za prikaz grafov do orodij za modeliranje, ki se uporabljajo namensko npr. v strojništvu, gradbeništvu.  Programiranje je domala izginilo, sploh pa iz šol.  Slovenske firme danes vneto iščejo programerje, v glavnem brezuspešno. Nekatere jih morajo celo uvažati iz vzhodnih držav.

Sam sem se z dijaki precej ukvarjal z računalniško grafiko, najprej v strem dobrem Turbo Pascalu v operacijskem sistemu DOS, pod Okni pa v nadaljevanju Pascala  – programu Delphi. Dijaki so znali napisati samostojne grafične aplikacije, pretežno simulacije fizikalnih pojavov, in ti programi so se preko orodja Activex dali zaganjati tudi preko spleta. Napredno za tiste čase ob koncu tisočletja, a tudi povezano s težavami. Brskalnik je moral imeti varnostne nastavitve znižane, Delphi pa je bil plačljiv program in je kar nenadoma izginil, skupaj s svojo različico Kilix za Linux.

Sredi prejšnjega desetletja sem na nekem seminarju opazoval predavatelja, kako uspešno je zganjal grafiko na spletni strani z običajnim Javascriptom. Prikaz mi je bil zelo všeč, dosti manj pa koda. Sem pač scrkljan tako od Pascala in Delphija, da ko slišim C++, skoraj dobim ošpice, največ, kar lahko še prezvečim, je Python. Poleg tega se mi je zdelo, da uporablja trike iz CSS. Kljub temu sem napisal nekaj kratkih programov v Javascriptu, pa jih tudi hitro pozabil zaradi obilice drugega dela.

Potem pa mi je prišel v roke standard zadnje verzije HTML-ja, torej HTML 5.0. Podpirajo ga vsi moderni brskalniki, pa tudi mobilne priprave. Postal sem pozoren na njegovo podporo grafiki in sklenil sem, da spet poskusim. Tole je (s pomočjo priročnika seveda) pravkar ratalo. Ni bogvekaj in nič ne miga, je pa dokaz, da se da:

<html>
<head>
	<style type="text.css">
		canvas {border: 1px solid black}
	</style>
</head>
<body>
<h3>Moja prva grafika v HTML5</h3>
<canvas id="mycanvas" width="800" height="500"></canvas>
<script language ="Javascript">
var canvas = document.getElementById('mycanvas');
var c = canvas.getContext('2d');
c.fillStyle="red";
c.fillRect(0,0,20,10);

c.lineWidth=1;
c.beginPath();
c.moveTo(0,100);
c.lineTo(201,100);
c.stroke()

c.beginPath();
c.moveTo(100,0);
c.lineTo(100,120);
c.stroke()

for (i=-100;i<100;i++)
{
c.fillStyle="black";
c.lineColor="red";
c.lineWidth=3;
c.beginPath();
c.moveTo(i+100,100-i*i/100);
c.lineTo(i+101,100-i*i/100);
c.stroke()
}
</script>

</body>
</html>

zgornja koda  nam da naslednji graf kvadratne funkcije:

HTML5 ima navo značko platno <canvas>, na katerega lahko rišemo na spletni strani. Canvas je poznal tudi Delphi, zato  je pojem poznan. Nanj rišemo z ukazi iz Javascripta, kot so drawRect, fill in drawImage.

 

Moja prva grafika v HTML5


Zajci, lisice in propad industrijske civilizacije

Pred dobrima dvema letoma sem v tem blogu objavil prispevka o matematičnem modelu plenilec – plen, s katerim sem se prvič srečal leta 1981 ob nakupu slavne Mavrice – prvega osebnega računalnika ZX Spectrum, ki se je priključil kar na TV, namesto spominske enote pa je uporabljal kasetofon (za nevedneže – priprava, ki je shranjevala glasbo na kasete z magnetnimi trakovi). Moja članka o tem lahko najdete tu in tu.

Danes pa vidim, da ameriški matematični fizik J. Baez v svojem blogu objavil prispevek z dramatičnim naslovom Civilization collapse.  V njem omenja članek iz Guardiana:

• Nafeez Ahmed, NASA-funded study: industrial civilisation headed for ‘irreversible collapse’?Earth Insight, blog on The Guardian, 14 March 2014.

v njem zvemo, da

“global industrial civilisation could collapse in coming decades due to unsustainable resource exploitation and increasingly unequal wealth distribution.”

Kljub vprašaju v naslovu in besedi “could” je naslov skrb vzbujajoč. Zato sem pogledal, kdo so avtorji in kakšne metode uporabljajo. Izkazalo se je, da uporabljajo precej preprost model, ki temelji na  podobnem sistemu Lotka-Volterrovih enačb, kot so v mojem modelu Zajci in lisice, oz. Zajci, lisice in trava. A  spremenljivke so sedaj štiri, in sicer:

  • število “običajnih”  ljudi,
  • število pripadnikov “elite”,
  • naravni viri
  • bogastvo.

Poglejte tudi znanstveni članek te skupine, povezan s tem člankom.

V Baezovem blogu se je razvila tudi kar burna razprava o tem modelu, očitajo mu predvsem, da je (še) preenostaven, da bi lahko dajal verodostojne napovedi. Razprava  je proti koncu zašla v rast svetovnega prebivalstva, navajajo vire OZN, ki govorijo o manjšanju števila petnajstletnikov na svetu, kar se morda ujema z napovedjo, o kateri sem v tem blogu tudi že pisal.