Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Greške
  • Crtanje svg html. SVG: Osnove vektorske grafike u HTML-u

Crtanje svg html. SVG: Osnove vektorske grafike u HTML-u

Ovaj zaključak proizlazi iz izvješća predsjednika uprave Bashnefta, objavljenog glavnoj skupštini dioničara tvrtke, čiju su kopiju urednici primili.

Iz dokumenta proizlazi da je kao rezultat geoloških istraživanja u 2018. godini otkriveno 81 produktivno ležište s rezervama od 19 milijuna tona.

Istodobno, korištenje visoko učinkovitih geoloških i tehničkih mjera i uvođenje modernih tehnologija za povećanje iscrpka nafte omogućilo je održavanje proizvodnje nafte na zrelim poljima u Baškiriji na razini 2017. - 15 milijuna tona. Ukupna proizvodnja za ovo razdoblje iznosila je 17,3 milijuna tona nafte.

U izvješću se također navodi da je stvaranje jedinstvenog proizvodnog lanca s kompleksom za proizvodnju i rafiniranje Rosnefta povećalo učinkovitost rafinerija u Ufi i dovelo do smanjenja operativnih i logističkih troškova. Konkretno, ovladana je proizvodnja benzina Euro-6 i započela je industrijska proizvodnja cestovnog bitumena u skladu s novim GOST-om.

Obujam maloprodaje na benzinskim postajama Bashneft u 11 mjeseci 2018. porastao je za 13,2 posto u usporedbi s istim razdobljem prošle godine i dosegao je 1,7 milijuna tona.

Za provedbu petrokemijske strategije modernizira se petrokemijska proizvodnja. Tako je Ufaorgsintez u svibnju 2018. pustio u rad novi pogon za proizvodnju kumena, sirovine za proizvodnju boja, otapala i raznih polimera koji se koriste u automobilskoj industriji, medicini i farmakologiji. Sljedeća je na redu rekonstrukcija kompleksa za proizvodnju aromata u Ufaneftekhimu i izgradnja novih pogona za proizvodnju olefina u Ufaorgsintezu.

Konsolidirana operativna dobit za 9 mjeseci 2018. porasla je za 22,6 posto u usporedbi s istim razdobljem 2017. i iznosila je 135,5 milijardi rubalja. Neto dobit Bashnefta dosegnula je 74,6 milijardi rubalja, što je 73,5 posto više nego lani.

Tijekom trećeg tromjesečja Bashneft je dioničarima isplatio dividende objavljene na godišnjoj skupštini u lipnju 2018. u iznosu od 28,2 milijarde rubalja, a ukupni obujam isplaćenih dividendi od početka godine iznosio je 43 milijarde rubalja.

U isto vrijeme, razina neto duga kompanije se smanjila i 30. rujna 2018. iznosila je 40,1 milijardu rubalja (na isti datum 2017. ta je brojka bila 104,7 milijardi rubalja).

Istodobno, tijekom izvještajnog razdoblja porezni doprinosi proračunu Baškortostana, uzimajući u obzir jednokratnu uplatu poreza na dohodak, porasli su 1,5 puta u usporedbi s istim razdobljem prošle godine i iznosili su 50,5 milijardi rubalja.

Većina web stranica sadrži grafiku. Omogućuje vam šareno i jasno predstavljanje informacija. U mnogim je slučajevima bolje pokazati sliku nego dati dug tekstualni opis.
Postoje dva načina za postavljanje grafike na stranicu:

  • umetanje pojedinačnih slika;
  • ispunjavanje pozadine slikom.

U svakom slučaju, grafička slika je preuzeta iz datoteke.

Umetanje grafičke slike iz datoteke grafičkog formata na stranicu vrši se pomoću oznake (s engleskog, slika - slika) označavajući adresu datoteke kao argument SRC atributa:

Adresa grafičke datoteke je ili URL ili naziv datoteke, po mogućnosti sa stazom. Na primjer, da biste prikazali grafičku datoteku logotip.jpg, trebali biste napisati oznaku

Za povećanje brzine prijenosa grafičke slike u oznaci možete koristiti atribut LOWSRC (dodatni parametar), koji uzima adresu grafičke datoteke kao argument. Možete stvoriti dvije grafičke datoteke: jedna (na primjer, recimo logotip.jpg) sadrži sliku visoke razlučivosti, a druga (na primjer, logotip.gif) sadrži sliku niske razlučivosti. Zatim označite

Uputa pregledniku da prvo preuzme datoteku logotip.gif, a zatim je zamijeni datotekom logotip.jpg kako je primi.
Drugi način da se ubrza učitavanje grafike je određivanje dimenzija pravokutnog područja u koje će se grafika smjestiti pomoću atributa WIDTH i HEIGHT, mjerenih u pikselima. Ako navedete ove atribute, preglednik će prvo dodijeliti prostor za grafiku, pripremiti izgled dokumenta, prikazati tekst, a tek onda učitati grafiku. Imajte na umu da preglednik sažima ili rasteže sliku kako bi stala unutar navedene veličine okvira. Primjer određivanja dimenzija slike:

Grafika se obično koristi zajedno s tekstom, pa se javlja izazov poravnavanja teksta i grafike. Ovaj problem se rješava pomoću atributa USKLADITI označiti koristeći razne argumente. Na primjer, možda želimo da tekst teče oko slike s desne ili lijeve strane. Obično je slika ugrađena blizu teksta, što može biti ružno. Kako biste to izbjegli, možete postaviti prazne margine oko ilustracije. Polja se stvaraju pomoću atributa VSPACE za gornju i donju marginu i NSPACE za bočne margine u oznaci . Argumenti ovih atributa navedeni su kao brojevi koji određuju veličinu polja u pikselima. Da biste poništili prelamanje teksta oko grafike, upotrijebite oznaku
.
Sljedeća oznaka postavlja grafiku iz datoteke logotip.jpg da prelama udesno (slika će biti lijevo od teksta):

Ako želite postaviti sliku desno od teksta, tada vam je potreban atribut USKLADITI dodijeliti argument PRAVO:

Da biste postavili margine oko slike, morate napisati oznaku poput:

Ovdje brojevi 20 i 10 određuju veličinu polja.
Razmotrimo primjer kombinirane upotrebe grafike i teksta. Otvorite Notepad (uređivač teksta Notepad) Windows. Napišite HTML kôd u njega koristeći gore navedene oznake. Ispod je program koji ispisuje nešto teksta i grafike. Možete koristiti bilo koju od datoteka koje imate kao grafičku datoteku. Datoteka koja se ovdje koristi je logotip.gif.


Vježba 1



<Н1>Tekst se prelama oko grafike s desne strane
Ovo je primjer korištenja teksta i grafike zajedno.
Tekst HTML programa može se napisati u bilo kojem uređivaču teksta. Ovo koristi oznake za označavanje teksta.

Ovaj tekst se prikazuje iz novog odlomka. Da bismo to učinili, koristili smo posebnu oznaku.


Pokušajte promijeniti veličinu prozora preglednika. Primijetite kako se mijenja izgled teksta.

Riža. 657. Tekst se prelama oko slike s desne strane

Pružaju široke mogućnosti preciznog pozicioniranja slika (kao i drugih elemenata) na stranici stolovi I stilovi. O ovim HTML elementima bit će riječi kasnije. Na primjer, možete definirati tablicu bez vidljivih okvira, te postaviti slike, tekstove i druge elemente u ćelije te tablice.

SVG (Scalable Vector Graphics) je standard vektorske grafike koji je razvio konzorcij W3C.

SVG je označni jezik za opisivanje dvodimenzionalnih grafičkih aplikacija i slika te je podskup Extensible Markup Language XML. Ovo također uključuje brojne povezane grafičke skripte.

SVG podržavaju svi moderni preglednici za računala i mobilne telefone. Neke značajke, kao što su SMIL animacije i SVG fontovi, nisu toliko raširene.

Najnovija verzija pune specifikacije je SVG 1.1.

SVG 2 je u razvoju. Dodat će nove značajke jednostavne za korištenje za SVG, a također radi na čvršćoj integraciji s HTML-om, CSS-om i DOM-om.

Prednosti SVG-a

  • SVG grafika se stvara pomoću matematičkih formula koje se mogu prilagoditi kada se promijeni veličina slike. Stoga se vektorske slike skaliraju bolje od rasterskih slika.
  • Veličina vektorske slike obično je manja od usporedivih slika u formatima JPEG, GIF ili PNG.
  • SVG grafika ima tekstualni format koji se može uređivati ​​u bilježnici ili crtati u uređivačima vektorske grafike Adobe Illustrator i CorelDRAW.
  • SVG skripte i animacije omogućuju vam stvaranje dinamične i interaktivne grafike.
  • Tekst u SVG grafici je tekst, a ne slika, pa ga tražilice indeksiraju.
  • Možete dodati više veza na SVG sliku.
  • Možete povezati vanjske CSS listove stilova sa SVG formatom, globalne stilove unutar spremnika ili dodajte interne stilove pomoću atributa stila na oznakama oblika i putanje.

Umetanje SVG u web stranicu

Postoji nekoliko načina za umetanje SVG slike u web stranicu. Prvi od njih je jednostavno umetanje SVG koda u stranicu (s velikom slikom, HTML kod stranice će postati ogroman i teško čitljiv). S drugim metodama prvo trebate spremiti SVG kod u datoteku s ekstenzijom .svg.

Dakle, evo načina za umetanje SVG slike u web stranicu:

  • izravno umetanje koda u HTML dokument u spremniku ... ;
  • korištenje SVG datoteke kao pozadinske slike;
  • povezivanje SVG datoteke s HTML dokumentom pomoću oznaka img, ugraditi, objekt I iframe;
  • povezivanje SVG datoteke s PHP dokumentom pomoću funkcije uključiti.
1. Izravno umetanje SVG koda u web dokument
2. Korištenje SVG datoteke kao pozadinske slike
3. Povezivanje SVG datoteke pomoću img oznake
4. Povezivanje SVG datoteke pomoću embed oznake
5. Uključivanje SVG datoteke pomoću oznake objekta
6. Povezivanje SVG datoteke pomoću iframe oznake
7. Uključivanje SVG datoteke pomoću funkcije uključivanja

Koordinatni sustav

Dimenzije i koordinate mogu se odrediti u različitim jedinicama (px, pt, pc, cm, mm, em, in). Ako jedinice nisu navedene, onda su to pikseli.

Koordinatni početak je gornji lijevi kut ekrana, tj.

Osnovni SVG elementi

Primjer udarac-dasharray Izmjenični potezi i razmaci u točkastoj liniji Primjer stroke-dashoffset Shift točkasta linija Primjer ispuniti Boja ispune (ništa – bez ispune) ispuna-neprozirnost Prozirnost ispune (od 0 do 1) pravilo za popunjavanje Pravilo punjenja.
Moguće vrijednosti atributa: stil Stil elementa razreda Klasa elementa

Ravna crta

Određeno oznakom .

Atributi oznake
Primjer

PROIZLAZITI:

izlomljena linija

Određeno oznakom .

Atribut oznake
Primjer

PROIZLAZITI:

Poligon

Određeno oznakom . Uvijek prikazuje zatvorene figure, automatski povlačeći liniju od kraja posljednjeg segmenta do početka prvog.

Atribut oznake
Primjer

PROIZLAZITI:

Pravokutnik

Određeno oznakom .

Atributi oznake
Primjer

PROIZLAZITI:

Krug

Određeno oznakom .

Atributi oznake
Primjer

PROIZLAZITI:

Složena putanja

Određeno oznakom . To je najsvestraniji od SVG elemenata. Omogućuje vam stvaranje proizvoljnih oblika. Oblik figure određen je atributima d, čija je vrijednost skup posebnih naredbi. Ove naredbe mogu biti i velikim i malim slovima. Velika slova označavaju da se koristi apsolutno pozicioniranje, dok mala slova označavaju relativno pozicioniranje.

Naredbe koje određuju putanju i smjer vitičaste linije
M, m Polazna točka
Mx,y
L, l Ravni segment
Lx,y
H, h Vodoravna crta
Hx,y ili hx
V, v Vertikalna linija
Vx,y ili vy
A,a Luk elipse
Arx,ry x-osa-rotacija veliki-luk-zastavica,zastavica-pomicanje x,y
rx,ry– polumjeri luka elipse;
rotacija osi x– kut rotacije luka u odnosu na os X;
veliki luk-zastava– ako je (=1), gradi se veći dio luka, ako je (=0) – manji dio;
pomet-zastavica– ako (=1), tada se luk gradi u smjeru kazaljke na satu, ako (=0) – u suprotnom smjeru;
x,y– koordinate krajnje točke luka.
C, c Kubična Bezierova krivulja
Cx1,y1 x2,y2 x,y
x1,y1– koordinate prve kontrolne točke;
x2,y2
x,y
S, s Glatka kubična Bezierova krivulja
Sx2,y2 x,y
x2,y2– koordinate druge kontrolne točke;
x,y
Prva kontrolna točka je zrcalna slika druge kontrolne točke.
Q, Q Kvadratna Bezierova krivulja
Qx1,y1 x,y
x1,y1– koordinate kontrolne točke;
x,y– koordinate krajnje točke krivulje.
T,t Glatka kvadratna Bezierova krivulja
Qx1,y1 x,y
x,y– koordinate krajnje točke krivulje.
Kontrolna točka ove naredbe zrcalna je slika kontrolne točke prethodne naredbe.
Z, z Zatvaranje puta
Primjer

PROIZLAZITI:



.

Postoji oznaka za uključivanje slike na određeno mjesto na stranici. . Ova oznaka ima obavezni parametar: SRC="", i nekoliko neobaveznih. Parametar SRC="" govori pregledniku gdje treba tražiti grafiku i trebao bi imati URL izvora na kojem se nalazi grafička datoteka kao vrijednost. U najjednostavnijem slučaju, ova će datoteka biti smještena u korijenski direktorij ili IMG mapu vaše stranice. Neobavezni parametri:

Parametar ALT="" sadrži kao vrijednost natpis koji govori o sadržaju slike za one posjetitelje čiji preglednici ne podržavaju grafiku ili rade u načinu rada s onemogućenom grafikom. Isti natpis pojavljuje se kada mišem prijeđete preko slike.

Parametri WIDTH="" HEIGHT="" kao vrijednosti imaju dimenzije slike u širini i visini u pikselima. Preporučljivo je navesti ove parametre u kodu stranice tako da preglednik unaprijed ostavi prostor za sliku, a zatim će se stranica manje "trzati" prilikom učitavanja. Osim toga, ovi se parametri mogu koristiti za podešavanje veličine slike u prozoru preglednika.

Parametar BORDER="" crta obrub oko slike. Vrijednost je broj koji označava širinu okvira u pikselima.

Parametar ALIGN= određuje položaj slike na stranici, a može poprimiti vrijednosti TOP - poravnava gornji rub slike s najvišim elementom trenutnog retka, TEXTTOP - poravnava gornji rub slike s najviši element teksta trenutnog retka, SREDNJA - poravnava sredinu slike s osnovnom linijom tekućeg retka, ABSREDNA - poravnava sredinu slike sa sredinom tekućeg retka. BASELINE ili BOTTOM - poravnava donji rub slike s osnovnom linijom trenutnog retka, ABSBOTTOM - poravnava donji rub slike s donjim rubom trenutnog retka, HSPACE= - određuje horizontalnu uvlaku, VSPACE= - određuje okomitu uvlaku.

Sintaksa oznake:

Ticker

Tekuća linija određena je oznakom .

Atributi ove oznake su bgcolor - boja pozadine tekuće linije, height - visina linije, width - širina linije.

Smjer - postavlja smjer kretanja puzajuće linije - direction="left" (desno, gore, dolje) - kretanje ulijevo (desno, gore, dolje).

Ponašanje - ponašanje retka - behavior="scroll" (slajd, naizmjenično). Pomicanje - normalno pomicanje (ne morate navesti, zadano je)



Klizanje - pomicanje sa zaustavljanjem, linija ide do ruba i zaustavlja se. Ako koristite parametar petlje istovremeno s behavor="slide", linija će se pomicati postavljeni broj puta i zaustaviti se na rubu. Alternativno - linija će se kretati od ruba do ruba.
Scrollamount - brzina kretanja linije, scrollamount="1". Može imati vrijednosti od 1 do 10. 1 je najsporiji pokret, 10 je najbrži.

Sintaksa oznake: tekst

Moderni web preglednici mogu reproducirati video i audio datoteke u različitim formatima. Da bi to učinili, koriste ugrađene playere (plug-in, ActiveX kontrole) ili vanjske programe playera. Možete umetnuti zvuk ili video u HTML dokument pomoću različitih oznaka:

- za umetanje pozadinskog zvuka;

- za umetanje videa u AVI formatu;

- za umetanje audio i video datoteka;

- za umetanje audio i video datoteka.

Kada odlučite umetnuti zvuk i/ili video u HTML dokument, imajte na umu da su odgovarajuće datoteke prilično velike. Najpopularnije datoteke na internetu sada su MP3, WMA, AIFF, AU, RealAudio (s ra i ram ekstenzijama), MP4, MIDI audio datoteke i MPEG, MOV video formati. WAV audio format i AVI video format rijetko se koriste na internetu.

(Ogledni članak nakon konferencije o razvoju softvera u Jekaterinburgu i drugih prezentacija. Video verzija izvješća u Jekaterinburgupogledajte na techdays.ru )

Što su HTML5 Canvas i SVG?

HTML5 platno

– element je platno za crtanje rasterske grafike. Zapravo, to je prazan blok zadanih dimenzija na koji možete crtati pomoću posebnih API-ja za JavaScript.

API uključuje 45 posebnih metoda i 21 atribut koji se koriste za prikaz grafičkih primitiva, postavljanje stilova, transformacija, pristup pojedinačnim pikselima i projiciranje slika i videa.

Sebe element definiran je izravno u HTML5 specifikaciji. API za njega opisan je u zasebnom dokumentu - HTML Canvas 2D Context.

SVG

Glazba može biti zabavna

Prekrasna igra glazbene i grafičke vizualizacije (http://musiccanbefun.edankwan.com/).

Primjeri dijagrama u SVG

Dijagram ljudskog kostura, periodnog sustava kemijskih elemenata i dišnog sustava (http://ie.microsoft.com/testdrive/Graphics/RealWorldDataAndDiagrams/Default.xhtml).

Yandex karte

Bliži primjer iz stvarnog života je crtanje ruta pomoću SVG-a (ako ga preglednik podržava). Pogledajte i govor “Karte i SVG” iz našeg HTML5 kampa.

Više primjera:

  • Beauty of the Web http://www.beautyoftheweb.com/ – stvarne stranice iz stvarnog svijeta
  • Dev: unplugged http://contest.beautyoftheweb.com/ – projekti koji sudjeluju u natjecanju za HTML5 aplikacije

Razlika između Canvasa i SVG-a

U različitim scenarijima, ili Canvas ili SVG mogu biti prikladniji za dinamičko grafičko renderiranje - vratit ćemo se na ovo pitanje na kraju. Za sada pogledajmo ključne razlike između jednog i drugog:

Platno SVG
Format Raster Vektor
Skaliranje
Pristup

Individualni pristup pikselima (RGBA)

Pristup pojedinačnim elementima (DOM)

Indeksabilnost i pristupačnost

Vidljiv je samo konačni raster (ne možete odabrati oblike, tekst itd.) - loše za pristupačnost

Možete vidjeti strukturu (na primjer, izvući sav tekst)

Stilizacija

Vizualni stilovi postavljaju se prilikom iscrtavanja putem API-ja

Vizualni stilovi se postavljaju atributima, možete uključiti CSS

Programiranje

JS API za rad s primitivima

DOM za rad s elementima

Ažuriraj

Za ažuriranje - crtanje preko ili potpuno ponovno crtanje

Moguća je izmjena pojedinih elemenata

Događaji

Ne postoji jednostavan način za rukovanje događajima miša. Objekti ispod kursora moraju se definirati ručno.

Događaji miša lako se šalju putem DOM-a i obrađuju automatski.

Integracija koda

JS kod odvojen od Canvasa

Možete uključiti JS unutra

Te se razlike moraju uzeti u obzir pri korištenju jedne ili druge tehnologije za vizualizaciju podataka. Na primjer, crtanje grafikona funkcije može biti lakše uz Canvas, dok je prikazivanje opisa alata (prepoznavanje objekta ispod pokazivača miša) lakše uz SVG.

U praksi, međutim, već postoji niz gotovih biblioteka za vizualizaciju podataka koje djelomično neutraliziraju te razlike.

Neću ulaziti u osnove rada sa svakom od tehnologija, već kao uvod preporučujem izvješće Vadima Makejeva (Opera) iz HTML5 kampa „Dinamička grafika: Canvas i SVG“.

Pogledajte i izvješća MIX 2011.:

Obrada slika s platnom

Jedna od značajnih značajki Canvasa je da ova tehnologija omogućuje pristup piksel po piksel prikazanim podacima i omogućuje projiciranje različitih grafičkih elemenata, uključujući video, na platno.

Dobar primjer gdje je to potrebno je zadatak obrade/analize slike.

Processing.js nudi dva pristupa opisivanju vizualizacije: međukod, koji dalje analizira sama biblioteka (u zasebnoj datoteci ili unutar stranice) i eksplicitni JavaScript kod.

Na primjer, da biste nacrtali fraktal Mandelbrot skupa, možete koristiti i opciju naznačenu na stranici s odgovarajućim primjerom i sljedeći JavaScript kod:

var xmin = -2,5; var ymin = -2; var wh = 4; funkcija sketchProc(processing) ( processing.setup = function () ( processing.size(200, 200); processing.noLoop(); ); processing.draw = function () ( processing.loadPixels(); var maxiterations = 200; var xmax = xmin + wh; var ymax = ymin + wh; var dx = (xmax - xmin) / (širina.obrade); var dy = (ymax - ymin) / (visina.obrade); var y = ymin; za (var j = 0; j< processing.height; j++) { var x = xmin; for (var i = 0; i < processing.width; i++) { var a = x; var b = y; var n = 0; while (n < maxiterations) { var aa = a * a; var bb = b * b; var twoab = 2.0 * a * b; a = aa - bb + x; b = twoab + y; if (aa + bb >16.0) (prekid;) n++; ) if (n == maksiteracije) processing.pixels.setPixel(i+j*processing.width, 0); else processing.pixels.setPixel(i+j*processing.width, processing.color(n*16 % 255)); x += dx; ) y += dy; ) obrada.updatePixels(); ); ) var canvas = document.getElementById("myCanvas" ); var p = nova obrada (platno, sketchProc);

Možete sami isprobati ovdje: http://silverbook.ru/projects/html5datavisualization/demo3-processingjs.htm (kopirajte kod, zalijepite ga u konzolu i izvršite).

JavaScript InfoVis Toolkit (JIT)

Za prikaz podataka, JIT uzima neobrađene vrijednosti kao JSON:

var json = ( "oznaka" : ["oznaka A" , "oznaka B" , "oznaka C" , "oznaka D" ], "vrijednosti" : [ ( "oznaka" : "datum A" , "vrijednosti" : ) , ( "oznaka" : "datum B" , "vrijednosti" : ), ( "oznaka" : "datum E" , "vrijednosti" : ), ( "oznaka" : "datum F" , "vrijednosti" : ), ( "oznaka" : "datum D" , "vrijednosti" : ), ( "oznaka" : "datum C" , "vrijednosti" : )] ); var pieChart = new $jit.PieChart(( injectInto: "infovis", animate: true, offset: 30, sliceOffset: 0, labelOffset: 20, type: "stacked:gradient" , showLabels:true, resizeLabels: 7, Label: ( tip: "Native", veličina: 20, obitelj: "Arial", boja: "bijela"), savjeti: ( enable: true, onShow: funkcija (tip, elem) ( tip.innerHTML = " " + elem.name + ": " + elem.vrijednost; ) ) ));

samo nazovi renderiranje:

PieChart.loadJSON(json);

jQuery Sparklines

Vizualizacija na karti pomoću SVG-a

Prijeđimo na SVG i započnimo s jednostavnim primjerom. Zamislite da trebate prikazati neke podatke na karti regija, koji je najlakši način za to?

Ako imate gotovu kartu u obliku SVG (uzeo sam kartu Rusije s web stranice Wikipedije), onda se to radi vrlo jednostavno - dovoljno je da svaka regija ima svoj jedinstveni ID unutar SVG dokumenta, a zatim umetnite kartu kao inline svg i obojite je jednostavnim kodom u željenu boju:

var SverdlovskOblast = document.getElementById("SverdlovskOblast" ); SverdlovskOblast.style.fill = "#fe3300" ;

Ako radite istu stvar u petlji, tada možete obojiti ne samo područje, već cijelu regiju ili čak cijelu zemlju:

var data = [(id: "KurganOblast" , vrijednost: 30), (id: "SverdlovskOblast" , vrijednost: 200), (id: "TyumenOblast" , vrijednost: 75), (id: "KhantiaMansia" , vrijednost: 100 ), (id: "YamaloNenetsAutDistrict" , vrijednost: 20), (id: "ChelyabinskOblast" , vrijednost: 150)]; za (var i = 0; i< data.length; i++) { var item = data[i]; var region = document.getElementById(item.id); region.style.fill = RGBtoHex(item.value, 0, 0); }

Knjižnice za vizualizaciju podataka pomoću SVG-a

Kao što sam već rekao, i Canvas i SVG su prikladni za rješavanje tradicionalnog problema vizualizacije numeričkih podataka u obliku grafikona i dijagrama. U oba slučaja, to se može učiniti prilično jednostavno korištenjem odgovarajućih biblioteka.

Već smo pogledali primjere s Canvasom, pogledajmo sada nekoliko biblioteka za rad sa SVG-om. (Ovo također nije iscrpan popis, ali prilično kvalitetna i popularna rješenja.)

Raphael

Da biste dodali jednostavan tortni grafikon, sve što trebate je sljedeći kod:

var r = Raphael("karta", 640, 480); var pie = r.g.piechart(320, 240, 100, );

Uz nekoliko dodatnih koraka možete dodati legendu, opise grafikona i interaktivne opise:

var r = Raphael("karta", 640, 480); r.g.txtattr.font = "12px "Fontin Sans", Fontin-Sans, sans-serif"; r.g.text(320, 100, "Interaktivni tortni grafikon" ).attr(("font-size" : 20)); var pie = r.g.piechart(320, 240, 100, ,
(legenda: ["%%.%% – Enterprise Users" , "IE Users" ], legendpos: "west" ,
href: ["http://raphaeljs.com" , http://g.raphaeljs.com]});
pie.hover(function () ( this .sector.stop(); this .sector.scale(1.1, 1.1, this .cx, this .cy); if (this .label) ( this .label.stop(); this .label.scale(1.5); this .label.attr(("font-weight" : 800)); ) ), function () ( this .sector.animate((scale: ), 500, "bounce" ) ; if (this .label) ( this .label.animate((scale: 1), 500, "bounce" ); this .label.attr(("font-weight" : 400)); ) ));

Druge vrste grafikona mogu se proizvesti na sličan način korištenjem odgovarajućih metoda. Pogledajte primjere izravno na stranici proširenja http://g.raphaeljs.com/

Highcharts JS

API knjižnice olakšava generiranje grafikona pomoću podataka u JSON-u:

var chart1 = new Highcharts.Chart(( grafikon: ( renderTo: "charts" , defaultSeriesType: "bar" ), title: ( text: "Fruit Consumption" ), xAxis: ( category: ["Apples" , "Bananas" , "Naranče" ]), yOs: ( naslov: ( tekst: "Pojedeno voće" ) ), serija: [( ime: "Jane" , podaci: ), ( ime: "John" , podaci: )] ));

Uz nešto složeniju skriptu, možete odrediti dodatne detalje, na primjer, prikazati legendu, konfigurirati opise alata:

var chart = new Highcharts.Chart(( grafikon: ( renderTo: "charts" , defaultSeriesType: "area" , spacingBottom: 30), naslov: ( tekst: "Potrošnja voća *" ), podnaslov: ( tekst: "* Janeina konzumacija banana nije poznata", plutajuće: točno, poravnanje: "desno", okomito Poravnanje: "dno", y: 15), legenda: (izgled: "okomito", poravnanje: "lijevo", okomito Poravnanje: "vrh", x: 150, y: 100 , floating: true , borderWidth: 1, backgroundColor: "#FFFFFF" ), xAxis: ( kategorije: ["Jabuke" , "Kruške" , "Naranče" , "Banane" , "Grožđe" , "Šljive" , "Jagode" , "Maline" ] ), yOs: ( naslov: ( tekst: "Y-os" ), oznake: ( formatter: funkcija () ( vrati ovu .vrijednost; )) ), alatni opis: ( formater: funkcija () ( vrati " "+naziv.ove.serije+"
" + this .x +": " + this .y; ) ), plotOptions: ( area: ( fillOpacity: 0.5 ) ), series: [( name: "John" , data: ), ( name: "Jane" , podaci: )] ));

Ako je potrebno, zadane stilove možete zamijeniti svojima.

Trebate li odabrati Canvas ili SVG?

Kao što se može vidjeti iz gornjih primjera, obje su tehnologije često prikladne za zadatke vizualizacije podataka. Mnoge stvari rade se na sličan način. U slučajevima kada je potreban izlaz piksel po piksel, Canvas je očito bolji. Tamo gdje se dijagram rastavlja na pojedinačne objekte u kojima morate održavati interaktivnost, SVG je prikladniji.

Platno je bolje
  • Uređivanje rasterske grafike
  • Dodavanje efekata grafici/videu
  • Generiranje rasterske grafike (vizualizacija podataka, fraktali, funkcijski grafikoni)
  • Analiza slike
  • Grafika igre (spriteovi, pozadina, itd.)
SVG je bolji
  • Skalabilna sučelja
  • Interaktivna sučelja
  • Dijagrami, sheme
  • Uređivanje vektorskih slika

U grafičkom obliku to se može prikazati na sljedeći način:

Konačno, još jedan važan aspekt koji je također važno uzeti u obzir pri odabiru tehnologije je izvedba renderiranja pri korištenju Canvasa i SVG-a:

U praksi, Canvas radi bolje kada je područje renderiranja malo i na velikom broju objekata; u SVG-u je prikladniji kada je potrebno skaliranje ili prikaz na velikom ekranu i kada nema previše objekata koji se prikazuju odjednom.

Najbolji članci na temu