11. mars fant den første store utgivelsen av 1.0.0 av XNUMXD-vektorgrafikkbiblioteket sted. PlutoVG, skrevet i C og distribuert under MIT-lisensen. Biblioteket har ingen tredjepartsavhengigheter.
Bibliotekets funksjoner:
- linjetegningsstiler;
- heldekkende, gradient- og teksturert skyggelegging;
- fonter og tekst;
- beskjæring og sammensetning;
- transformasjoner;
- Bilder.
Biblioteket brukes i andre prosjekter av forfatteren: LunaSVG и PlutoSVG.
Endringer:
- Bruk SemVer for versjonsnummerering.
- La til makroene PLUTOVG_EMPTY_POINT og PLUTOVG_EMPTY_RECT.
Kode:
#inkludere int main(void) { const int bredde = 150; const int høyde = 150; const float senter_x = bredde / 2.f; const float senter_y = høyde / 2.f; const float ansiktsradius = 70; const float munn_radius = 50; const float øye_radius = 10; const float øye_offset_x = 25; const float øye_offset_y = 20; const float øye_x = senter_x — øye_offset_x; const float øye_y = senter_y — øye_offset_y; plutovg_overflate_t* overflate = plutovg_overflate_opprett(bredde, høyde); plutovg_lerret_t* lerret = plutovg_lerret_opprett(overflate); plutovg_lerret_save(lerret); plutovg_canvas_arc(lerret, senter_x, senter_y, ansiktsradius, 0, PLUTOVG_TWO_PI, 0); plutovg_canvas_set_rgb(lerret, 1, 1, 0); plutovg_canvas_fill_preserve(lerret); plutovg_canvas_set_rgb(lerret, 0, 0, 0); plutovg_canvas_set_line_width(lerret, 5); plutovg_canvas_stroke(lerret); plutovg_canvas_restore(lerret); plutovg_canvas_save(lerret); plutovg_canvas_arc(lerret, øye_x, øye_y, øye_radius, 0, PLUTOVG_TWO_PI, 0); plutovg_canvas_arc(lerret, senter_x + øye_offset_x, øye_y, øye_radius, 0, PLUTOVG_TWO_PI, 0); plutovg_lerret_set_rgb(lerret, 0, 0, 0); plutovg_lerret_fill(lerret); plutovg_lerret_restore(lerret); plutovg_lerret_save(lerret); plutovg_lerret_arc(lerret, senter_x, senter_y, munn_radius, 0, PLUTOVG_PI, 0); plutovg_lerret_set_rgb(lerret, 0, 0, 0); plutovg_lerret_set_linjebredde(lerret, 5); plutovg_lerret_stroke(lerret); plutovg_lerret_restore(lerret); plutovg_surface_write_to_png(surface, "smiley.png"); plutovg_canvas_destroy(lerret); plutovg_surface_destroy(surface); returner 0; }
tegner 😃 og lagrer det i filen smiley.png. 🙂
Kilde: linux.org.ru
