Joonistage andmegraafikuid SVG-ga asjade Internetiga (IoT) ühendatud anduritelt

Joonistage andmegraafikuid SVG-ga asjade Internetiga (IoT) ühendatud anduritelt

Joonistage andmegraafikuid SVG-ga asjade Internetiga (IoT) ühendatud anduritelt

Selles artiklis sarjas teemal andmegraafikute esitamine asjade Internetis Selgitan, kuidas joonistada graafikuid kasutades SVG keel. Nagu teistelgi juhtudel, toimib artikkel ka keele lühikeseks sissejuhatuseks.

Sisukord

    Asjade Interneti (IoT) konteineriga ühendatud andurite andmegraafikud HTML-isAsjade Internetiga (IoT) ühendatud andurite andmete graafikud CSS-is ilmumise määratlusAndmegraafikud asjade Internetiga (IoT) ühendatud anduritelt joonistades SVG-gaAndmegraafikud asjade Internetiga (IoT) ühendatud anduritelt Genereerimine ja muutmine JavaScriptiga

    SVG-vormingus

    SVG vastab akronüümile Scalable Vector Graphics (inglise keeles skaleeritav vektorgraafika). See on märgistuskeel mis põhineb XML ja mis võimaldab peamiselt kirjeldada joonist seda määratleva geomeetriaga; erinevalt maatriksmeetodist, mida kasutatakse näiteks foto jaoks, mis kasutaks selle kodeerimiseks värviliste pikslite võrgustikku.

    joonise sees SVG Samuti võib lisada pildi (pikslite maatriksi), mis viitab välisele dokumendile või on manustatud joonisele. SVG.

    Selle artikli kirjutamise ajal kehtiv keeleversioon on SVG 1.1 kuigi versiooni määratlus on juba väljatöötamisel SVG 2. Nii palju kui võimalik, püüan teha seda, mida sissejuhatuses on selgitatud, isegi kui see viitab SVG 1.1 teenida ka SVG 2.

    Kui joonis SVG See sisaldub eraldi dokumendis, mitte koodis HTML (minu selles lahenduses olev ettepanek IoT andmete esitamiseks manustab selle koodi HTML) peal peab olema viide XML ja dokumenditüübi määratlus (DTD).

    Eelmise koodi esimesel real teavitatakse versioonist XML kasutatud (1.0) märgikodeeringut (UTF-8) ja näitab, kas vajate väliseid määratlusi (standalone="no") või on see iseseisev dokument (standalone="yes"). Teine rida väljendab dokumenditüübi määratlus (DTD), mida pole järgmises versioonis vaja SVG.

    Kood, millega joonis on määratletud, on siltide vahel <sgv> y </sgv> mis viitavad ka, nagu juba rääkides mainitud HTML-kood, mis toimib asjade internetis andmegraafikute konteinerina, mõõdud, esindatud kogusumma osa, osakaal ning ka tüüp ja versioon.

    Ülaltoodud näide määratleb 500 pikslit laiuse ja 250 pikslit kõrge (500 x 250 vaateava) joonise, mis kärbitakse 460 x 80 ristkülikuga (460 x 80 vaateväljaga), mis algab koordinaatidest 20,10, kasutades kogu konteineris saadaolevat ruumi (element veebilehel meie puhul), austamata algset kasutusproportsiooni preserveAspectRatio="none". Lisaks näete nüüd dokumendi esimest sisu, sellesse lisatud kommentaare <!-- y --> nagu ka teistes vormingutes, mis põhinevad XML.

    poolt valitud koordinaatsüsteem SVG See on orienteeritud horisontaalselt (X-telg) ja vertikaalselt (Y-telg) ning positiivne suund on läänekirja oma, see tähendab, et X-telje väärtused kasvavad paremale ja Y-telje positiivsed väärtused kasvavad. allapoole.

    Määrake graafik SVG-ga

    Meie asjade internetiga ühendatud andurite salvestatud teabe graafika määratlemiseks peame määrama joonistatava objekti tüübi, selle geomeetria (koordinaadid, mõõtmed...) ja välimuse (paksus, värvus...). Selle artikli näide on joondiagramm, mille saab luua joonelõikude ühendamisel objektiga line, kõige kasulikum sõltumatute elementide või mitmesegmendilise joonega objekti joonistamiseks path, praktilisem ühendatud liinide seeriate jaoks.

    Koos elemendiga path Eesmärk on teha alloleval pildil kujutatu sarnane joonis, mis koosneb heledama värviga täidetud suletud rajast, mille ülaosas on avatud tee, ilma täidiseta ja jämeda joonega.

    Rea kirjeldamiseks kasutatakse järgmist tüüpi avaldist:

    Milles X1,Y1 on sirge esimese punkti koordinaadid ja X2,Y2 teise punkti koordinaadid. Kasutati atribuuti stroke-width paksuse määramiseks. Objektide välimuse määramiseks on mitu võimalust SVG, selle üksikute omadustega, nagu eelmine, või atribuudiga style mis ühendab need kõik kokku ja millist meetodit artikli ettepanekus kasutatakse.

    Ülaltoodud kood liitub kinnistul style väärtused stroke (löögi värv), stroke-width (joone paksus) ja stroke-opacity (objekti läbipaistmatus)

    Objekti kirjeldus path on kujuga

    Ülaltoodud kood kasutab toiminguid SVG M, L y Z kinnistu sees d, mis tähendavad vastavalt "moveto" (liiguta), "lineto" (joon kuni) ja "closepath" (sulge tee). Neid saab väljendada suur- või väiketähtedega, et näidata vajaduse korral absoluutset või suhtelist väärtust (juhul, kui Znäiteks ei ole asjakohane). On palju muid tehteid, millega saame näiteks joonistada ringkõveraid, elliptilisi kõveraid, Bezier' kõveraid... mida me selles näites ei vaja.

    Kuigi see ettepanek joonistab joongraafikuid, mis võivad ala ümbritseda, võib punktide tähistamiseks või alade esiletõstmiseks olla kasulik joonistada muid lihtsaid elemente. Nendest, mis on saadaval SVG Huvitavad võivad olla hulknurgad (millega saab ka täidist joonistada), ristkülikud (konkreetse juhtumi jaoks mugavam), ellipsid ja ringid (ellipside puhul). Nende elementide süntaksit saab näha järgmises näidiskoodis.

    Eelmise koodi välimus oleks nagu järgmine pilt (mõne nipiga, et saaks ülaltoodud näite punkte uuesti kasutada)

    Hulknurga punktid (polygon) on kinnistul märgitud points x,y koordinaatide paaridena, mis on eraldatud tühikutega. Ellipside määratlemiseks (ellipse) omadusi kasutatakse cx (keskpunkti x koordinaat), cy (keskpunkti y-koordinaat), rx (laius) ja ry (kõrge). Kahe raadiuse väärtuse asemel (horisontaalne ja vertikaalne raadius, rx y ry) ring (circle) on määratud atribuudiga raadiusega r ja keskuse koordinaadid koos cx y cy. Ristküliku (rectangle) näidatakse vasaku ülanurga koordinaadid (x e y) laius (width) ja pikk (height)

    Lõpuks kasutatakse teksti kaasamiseks objekti text järgnevalt:

    Teksti asukoht on tähistatud x ja y koordinaatidega, font vastab omadusele font-family, suurus koos font-size ja värv koos varaga fill.

    HTML võimaldab jooniseid integreerida SVG lehe teise elemendina. Sarnaselt teistele objektidele saab ka kinnistut kasutada ID et määrata neile kordumatu identifikaator, mille abil neile seejärel viidata JavaScript nendega manipuleerida. Vaatepunktist HTML, objekt SVG oleks järgmisel kujul:

    Seni nähtu põhjal oleks võimalik joonistada seda tüüpi põhigraafik, mida selles ettepanekus otsitakse, kuid konteineri (veebilehe) välimuse paindlikumaks muutmiseks mõjutab see graafiku osakaalu. (näiteks preserveAspectRatio="none"), muutes selle suurust, et kohandada seda elementide brauseriaknas oleva paigutusega HTML.

    Laias laastus on diagrammi sisaldava veebilehte kuvava brauseriakna suuruse muutmisel käitumisele kaks alternatiivi: (1) säilitage diagrammi suurus. SVG tühja ruumi jätmine, kui seda on liiga palju, või kerimisribade lisamine, kui see puudub, või (2) muuta graafiku suurust SVG rütmiliselt muuta veebi kuvava brauseriakna suurust. Kui valite esimese valemi, saate ennustada suurusi ja joonistada absoluutsete mõõtudega, kuigi korrigeeritud vastavalt valitud suurusele ja graafiku väärtustele. Kui valite teise viisi, mida ma pakun, on suurused alati protsentides esitatud väärtustest. Teise meetodi eeliseks on selle kohandatavus veebiga ja puuduseks graafikuga kaasnevate elementide, näiteks punktide või tekstide, joonistamine.

    Joone paksuses tekkida võiva deformatsiooni korrigeerimiseks kasutatakse efekti. vector-effect="non-scaling-stroke" marsruutidel, mis on vajalikud (need, mille väärtus on stroke muud kui none). Objektide jaoks text Võrreldavat efekti ei ole, seega on vaja neid (koos nendega seonduvatega) deformeerida vastupidises suunas sellele, mis tekib konteineri suuruse muutumisel.

    Teisendused sisse SVG Neid saab rakendada objektirühmadele nii, et mitu teksti ja muud graafika objektid saab integreerida ühte rühma ja mugavamalt teostada nende kõigi jaoks teisendust.

    Rühma kuuluvad elemendid on lisatud siltide hulka <g> y </g>, teisenduse määramiseks kasutatakse atribuuti transform ja rida toiminguid, mis meie puhul on asjakohased scale, millele on näidatud horisontaalne ja vertikaalne suurendustegur. Kui väärtus scale on suurem kui üks, laiendab vastavat telge ja kui see on väiksem kui üks, väheneb objektide suurus piki seda telge.

    Eelmises näites muudetakse esimest ja teist teksti, vähendades nende horisontaalset mõõtmist poole võrra ja kahekordistades vertikaalset mõõtmist 0.5 ja 2.0 võrra. scale(0.5,2.0)

    Sarja järgmine artikkel teemal IoT-ga ühendatud andurite andmegraafikute esitus selgitab, kuidas luua või muuta graafikuid reaalajas kasutades JavaScript mis võimaldab teil näha graafiku animatsiooni, kui esitate serverist viimased laaditud väärtused.

    Järgnevalt on toodud näide selle kohta, kuidas selle ettepaneku abil loodud graafikud välja näeksid.

    Postita kommentaar

    Võib-olla jäite vahele