Heti Wikipédia-illusztráció

LibreLogóval készített Wikipédia-vektorgrafika
LibreLogóval készített Wikipédia-vektorgrafika
metil-higany (SVG)
metil-higany (SVG)
az eredeti kép
az eredeti kép

A fenti címmel új sorozat indul a honlapon, heti rendszerességgel bemutatva egy új SVG, vagy animált SVG formátumú Wikipédia illusztrációt, és LibreLogo forráskódját (bővebben l. Wikipédiára fel!). Az első kép, a metil-higany nem túl bonyolult szerkezeti képletének ötletét a Wikipédia TOP 200 kép, amelynek vektorgrafikát kellene használnia kategóriája adta.

Szerkezeti képlet a LibreLogo alapértelmezett Linux Biolinum G betűivel
Szerkezeti képlet a LibreLogo alapértelmezett Linux Biolinum G betűivel
A vektorgrafikus változat LibreLogo forráskódja megfelelő betűkészlet esetén mindössze ennyi:

KÉP „metilhigany.svg” [
   CÍMKE „H₃C―Hg⁺ X⁻”
]

A CÍMKE paraméterében Unicode felső és alsó index karakterek találhatók. A LibreLogo alapértelmezett betűkészlete, a Linux Biolinum G ezt megfelelő módon jeleníti meg.
Mivel a kémiai formulák megjelenítésénél inkább Helveticára emlékeztető betűket használ a Wikipédia, a Wikipédia által támogatott Nimbus Sans L betűkészletre váltottunk, és az alsó és felső indexeket programból állítjuk be.:

BETŰCSALÁD „Nimbus Sans L”
TOLLATFEL

EZ képlet s
FUT i s-BEN [
	fs = BETŰMÉRET
	corr = 0
	HA i „⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻”-BEN [ corr = fs/8 ]
	HA i „₀₁₂₃₄₅₆₇₈₉”-BEN [ corr = -fs/5 ]
	HA i = „―” [ corr = fs/10 ]
	ELŐRE corr
	CÍMKE2 i
	HÁTRA corr
]
VÉGE

KÉP „metilhigany.svg” [ képlet „H₃C―Hg⁺ X⁻” ]

A program magyarázata: a képlet eljárás kapja meg a kiírandó karakterláncot, majd egyesével írja ki a betűket. Ha a betű kvirtmínusz, alsó vagy felső index, akkor a magasságán kicsit korrigál.

A fenti program bonyolultnak tűnhet, de cserébe a hasonló szerkezeti képleteket tartalmazó vektorgrafikus illusztrációk létrehozása csak egy új függvényhívást, illetve állománynevet igényel:
dimetilhigany

KÉP „dimetilhigany.svg” [ képlet „H₃C―Hg―CH₃” ]

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.