hsmet
1.0.0
|
SVG-Graphiken erzeugen. Mehr ...
gehe zum Quellcode dieser Datei
Datenstrukturen | |
struct | he_svg_style_t |
CSS-Style-Information fuer eine Klasse. Mehr ... | |
struct | he_svg_t |
Struktur zum Erzeugen einer SVG-Datei. Mehr ... | |
Aufzählungen | |
enum | he_svg_align_h_t { HE_SVG_ALIGN_H_LEFT = 0, HE_SVG_ALIGN_H_CENTERED, HE_SVG_ALIGN_H_RIGHT } |
Horizontale Ausrichtung. Mehr ... | |
enum | he_svg_font_weight_t { HE_SVG_FONT_WEIGHT_NORMAL = 0, HE_SVG_FONT_WEIGHT_BOLD, HE_SVG_FONT_WEIGHT_BOLDER, HE_SVG_FONT_WEIGHT_LIGHTER, HE_SVG_FONT_WEIGHT_100, HE_SVG_FONT_WEIGHT_200, HE_SVG_FONT_WEIGHT_300, HE_SVG_FONT_WEIGHT_400, HE_SVG_FONT_WEIGHT_500, HE_SVG_FONT_WEIGHT_600, HE_SVG_FONT_WEIGHT_700, HE_SVG_FONT_WEIGHT_800, HE_SVG_FONT_WEIGHT_900, HE_SVG_FONT_WEIGHT_INHERIT } |
Schriftdicke. Mehr ... | |
enum | he_svg_unit_t { HE_SVG_UNIT_PX = 0, HE_SVG_UNIT_MM } |
Einheit fuer die Abmessungen. Mehr ... | |
enum | he_svg_linecap_t { HE_SVG_LINECAP_BUTT = 0, HE_SVG_LINECAP_ROUND, HE_SVG_LINECAP_SQUARE, HE_SVG_LINECAP_INHERIT } |
Abschluss einer Linie. Mehr ... | |
enum | he_svg_linejoin_t { HE_SVG_LINEJOIN_MITER = 0, HE_SVG_LINEJOIN_ROUND, HE_SVG_LINEJOIN_BEVEL, HE_SVG_LINEJOIN_INHERIT } |
Knickpunkte. Mehr ... | |
enum | he_svg_color_t { HE_SVG_COLOR_NONE = 0, HE_SVG_COLOR_ALICEBLUE, HE_SVG_COLOR_ANTIQUEWHITE, HE_SVG_COLOR_AQUA, HE_SVG_COLOR_AQUAMARINE, HE_SVG_COLOR_AZURE, HE_SVG_COLOR_BEIGE, HE_SVG_COLOR_BISQUE, HE_SVG_COLOR_BLACK, HE_SVG_COLOR_BLANCHEDALMOND, HE_SVG_COLOR_BLUE, HE_SVG_COLOR_BLUEVIOLET, HE_SVG_COLOR_BROWN, HE_SVG_COLOR_BURLYWOOD, HE_SVG_COLOR_CADETBLUE, HE_SVG_COLOR_CHARTREUSE, HE_SVG_COLOR_CHOCOLATE, HE_SVG_COLOR_CORAL, HE_SVG_COLOR_CORNFLOWERBLUE, HE_SVG_COLOR_CORNSILK, HE_SVG_COLOR_CRIMSON, HE_SVG_COLOR_CYAN, HE_SVG_COLOR_DARKBLUE, HE_SVG_COLOR_DARKCYAN, HE_SVG_COLOR_DARKGOLDENROD, HE_SVG_COLOR_DARKGRAY, HE_SVG_COLOR_DARKGREEN, HE_SVG_COLOR_DARKGREY, HE_SVG_COLOR_DARKKHAKI, HE_SVG_COLOR_DARKMAGENTA, HE_SVG_COLOR_DARKOLIVEGREEN, HE_SVG_COLOR_DARKORANGE, HE_SVG_COLOR_DARKORCHID, HE_SVG_COLOR_DARKRED, HE_SVG_COLOR_DARKSALMON, HE_SVG_COLOR_DARKSEAGREEN, HE_SVG_COLOR_DARKSLATEBLUE, HE_SVG_COLOR_DARKSLATEGRAY, HE_SVG_COLOR_DARKSLATEGREY, HE_SVG_COLOR_DARKTURQUOISE, HE_SVG_COLOR_DARKVIOLET, HE_SVG_COLOR_DEEPPINK, HE_SVG_COLOR_DEEPSKYBLUE, HE_SVG_COLOR_DIMGRAY, HE_SVG_COLOR_DIMGREY, HE_SVG_COLOR_DODGERBLUE, HE_SVG_COLOR_FIREBRICK, HE_SVG_COLOR_FLORALWHITE, HE_SVG_COLOR_FORESTGREEN, HE_SVG_COLOR_FUCHSIA, HE_SVG_COLOR_GAINSBORO, HE_SVG_COLOR_GHOSTWHITE, HE_SVG_COLOR_GOLD, HE_SVG_COLOR_GOLDENROD, HE_SVG_COLOR_GRAY, HE_SVG_COLOR_GREY, HE_SVG_COLOR_GREEN, HE_SVG_COLOR_GREENYELLOW, HE_SVG_COLOR_HONEYDEW, HE_SVG_COLOR_HOTPINK, HE_SVG_COLOR_INDIANRED, HE_SVG_COLOR_INDIGO, HE_SVG_COLOR_IVORY, HE_SVG_COLOR_KHAKI, HE_SVG_COLOR_LAVENDER, HE_SVG_COLOR_LAVENDERBLUSH, HE_SVG_COLOR_LAWNGREEN, HE_SVG_COLOR_LEMONCHIFFON, HE_SVG_COLOR_LIGHTBLUE, HE_SVG_COLOR_LIGHTCORAL, HE_SVG_COLOR_LIGHTCYAN, HE_SVG_COLOR_LIGHTGOLDENRODYELLOW, HE_SVG_COLOR_LIGHTGRAY, HE_SVG_COLOR_LIGHTGREEN, HE_SVG_COLOR_LIGHTGREY, HE_SVG_COLOR_LIGHTPING, HE_SVG_COLOR_LIGHTSALMON, HE_SVG_COLOR_LIGHTSEAGREEN, HE_SVG_COLOR_LIGHTSKYBLUE, HE_SVG_COLOR_LIGHTSLATEGRAY, HE_SVG_COLOR_LIGHTSLATEGREY, HE_SVG_COLOR_LIGHTSTEELBLUE, HE_SVG_COLOR_LIGHTYELLOW, HE_SVG_COLOR_LIME, HE_SVG_COLOR_LIMEGREEN, HE_SVG_COLOR_LINEN, HE_SVG_COLOR_MAGENTA, HE_SVG_COLOR_MAROON, HE_SVG_COLOR_MEDIUMAQUAMARINE, HE_SVG_COLOR_MEDIUMBLUE, HE_SVG_COLOR_MEDIUMORCHID, HE_SVG_COLOR_MEDIUMPURPLE, HE_SVG_COLOR_MEDIUMSEAGREEN, HE_SVG_COLOR_MEDIUMSLATEBLUE, HE_SVG_COLOR_MEDIUMSPRINGGREEN, HE_SVG_COLOR_MEDIUMTURQUOISE, HE_SVG_COLOR_MEDIUMVIOLETRED, HE_SVG_COLOR_MIDNIGHTBLUE, HE_SVG_COLOR_MINTCREAM, HE_SVG_COLOR_MISTYROSE, HE_SVG_COLOR_MOCCASIN, HE_SVG_COLOR_NAVAJOWHITE, HE_SVG_COLOR_NAVY, HE_SVG_COLOR_OLDLACE, HE_SVG_COLOR_OLIVE, HE_SVG_COLOR_OLIVEDRAB, HE_SVG_COLOR_ORANGE, HE_SVG_COLOR_ORANGERED, HE_SVG_COLOR_ORCHID, HE_SVG_COLOR_PALEGOLDENROD, HE_SVG_COLOR_PALEGREEN, HE_SVG_COLOR_PALETURQUOISE, HE_SVG_COLOR_PALEVIOLETRED, HE_SVG_COLOR_PAPAYAWHIP, HE_SVG_COLOR_PEACHPUFF, HE_SVG_COLOR_PERU, HE_SVG_COLOR_PINK, HE_SVG_COLOR_PLUM, HE_SVG_COLOR_POWDERBLUE, HE_SVG_COLOR_PURPLE, HE_SVG_COLOR_RED, HE_SVG_COLOR_ROSYBROWN, HE_SVG_COLOR_ROYALBLUE, HE_SVG_COLOR_SADDLEBROWN, HE_SVG_COLOR_SALMON, HE_SVG_COLOR_SANDYBROWN, HE_SVG_COLOR_SEAGREEN, HE_SVG_COLOR_SEASHELL, HE_SVG_COLOR_SIENNA, HE_SVG_COLOR_SILVER, HE_SVG_COLOR_SKYBLUE, HE_SVG_COLOR_SLATEBLUE, HE_SVG_COLOR_SLATEGRAY, HE_SVG_COLOR_SLATEGREY, HE_SVG_COLOR_SNOW, HE_SVG_COLOR_SPRINGGREEN, HE_SVG_COLOR_STEELBLUE, HE_SVG_COLOR_TAN, HE_SVG_COLOR_TEAL, HE_SVG_COLOR_THISTLE, HE_SVG_COLOR_TOMATO, HE_SVG_COLOR_TURQUOISE, HE_SVG_COLOR_VIOLET, HE_SVG_COLOR_WHEAT, HE_SVG_COLOR_WHITE, HE_SVG_COLOR_WHITESMOKE, HE_SVG_COLOR_YELLOW, HE_SVG_COLOR_YELLOWGREEN } |
Farbangaben per Namen. | |
Funktionen | |
he_svg_t * | hsm_et_svg_open (const char *fn, long w_mm, long h_mm, he_svg_unit_t units, double x_l, double x_r, double y_b, double y_t, size_t n_styles, int debug, int *ec) |
Neue SVG-Graphik oeffnen. Mehr ... | |
int | hsm_et_svg_close (he_svg_t *svgptr, int *ec) |
Speichern der SVG-Graphik beenden, Graphik schliessen. Mehr ... | |
int | hsm_et_svg_set_use_css (he_svg_t *svg, int css, int *ec) |
Nutzung von CSS-Styles erlauben oder verbieten. Mehr ... | |
void | he_svg_style_init (he_svg_style_t *ptr) |
Style initialisieren. Mehr ... | |
int | hsm_et_svg_style_ptr_set_font_family_name (he_svg_t *svg, he_svg_style_t *stptr, char const *name, int *ec) |
Font-Familie fuer Style festlegen. Mehr ... | |
int | hsm_et_svg_style_set_font_family_name (he_svg_t *svg, size_t st, char const *name, int *ec) |
Font-Familie fuer Style festlegen. Mehr ... | |
int | hsm_et_svg_style_ptr_set_font_size (he_svg_t *svg, he_svg_style_t *stptr, double fs, int *ec) |
Font-Groesse fuer style festlegen. Mehr ... | |
int | hsm_et_svg_style_set_font_size (he_svg_t *svg, size_t st, double fs, int *ec) |
Font-Groesse fuer Style festlegen. Mehr ... | |
int | hsm_et_svg_style_ptr_set_fill_color_name (he_svg_t *svg, he_svg_style_t *stptr, he_svg_color_t name, int *ec) |
Fuell-Farbe ueber Namen festlegen. Mehr ... | |
int | hsm_et_svg_style_set_fill_color_name (he_svg_t *svg, size_t st, he_svg_color_t name, int *ec) |
Fuell-Farbe ueber Namen festlegen. Mehr ... | |
int | hsm_et_svg_style_ptr_set_fill_color_rgb (he_svg_t *svg, he_svg_style_t *stptr, int r, int g, int b, int *ec) |
Fuell-Farbe als RGB-Werte festlegen. Mehr ... | |
int | hsm_et_svg_style_set_fill_color_rgb (he_svg_t *svg, size_t st, int r, int g, int b, int *ec) |
Fuell-Farbe als RGB-Werte festlegen. Mehr ... | |
int | hsm_et_svg_style_ptr_set_stroke_color_name (he_svg_t *svg, he_svg_style_t *stptr, he_svg_color_t name, int *ec) |
Zeichen-Farbe ueber Namen festlegen. Mehr ... | |
int | hsm_et_svg_style_set_stroke_color_name (he_svg_t *svg, size_t st, he_svg_color_t name, int *ec) |
Zeichen-Farbe ueber Namen festlegen. Mehr ... | |
int | hsm_et_svg_style_ptr_set_stroke_color_rgb (he_svg_t *svg, he_svg_style_t *stptr, int r, int g, int b, int *ec) |
Zeichen-Farbe als RGB-Werte festlegen. Mehr ... | |
int | hsm_et_svg_style_set_stroke_color_rgb (he_svg_t *svg, size_t st, int r, int g, int b, int *ec) |
Zeichen-Farbe als RGB-Werte festlegen. Mehr ... | |
int | hsm_et_svg_style_ptr_set_horizontal_align (he_svg_t *svg, he_svg_style_t *stptr, he_svg_align_h_t al, int *ec) |
Horizontale Textausrichtung festlegen. Mehr ... | |
int | hsm_et_svg_style_set_horizontal_align (he_svg_t *svg, size_t st, he_svg_align_h_t al, int *ec) |
Horizontale Textausrichtung festlegen. Mehr ... | |
int | hsm_et_svg_style_ptr_set_linewidth (he_svg_t *svg, he_svg_style_t *stptr, double lw, int *ec) |
Linienbreite festlegen. Mehr ... | |
int | hsm_et_svg_style_set_linewidth (he_svg_t *svg, size_t st, double lw, int *ec) |
Linienbreite festlegen. Mehr ... | |
int | hsm_et_svg_style_ptr_set_linecap (he_svg_t *svg, he_svg_style_t *stptr, he_svg_linecap_t lc, int *ec) |
Stil fuer Linienenden festlegen. Mehr ... | |
int | hsm_et_svg_style_set_linecap (he_svg_t *svg, size_t st, he_svg_linecap_t lc, int *ec) |
Stil fuer Linienenden festlegen. Mehr ... | |
int | hsm_et_svg_style_ptr_set_linejoin (he_svg_t *svg, he_svg_style_t *stptr, he_svg_linejoin_t lj, int *ec) |
Stil fuer Knickpunkte festlegen. Mehr ... | |
int | hsm_et_svg_style_set_linejoin (he_svg_t *svg, size_t st, he_svg_linejoin_t lj, int *ec) |
Stil fuer Knickpunkte festlegen. Mehr ... | |
int | hsm_et_svg_style_ptr_set_font_weight (he_svg_t *svg, he_svg_style_t *stptr, he_svg_font_weight_t fw, int *ec) |
Schriftdicke einstellen. Mehr ... | |
int | hsm_et_svg_style_set_font_weight (he_svg_t *svg, size_t st, he_svg_font_weight_t fw, int *ec) |
Schriftdicke einstellen. Mehr ... | |
int | hsm_et_svg_draw_rectangle (he_svg_t *svg, size_t st, he_svg_style_t *ast, double x1, double y1, double x2, double y2, int *ec) |
Rechteck zeichnen. Mehr ... | |
int | hsm_et_svg_draw_line (he_svg_t *svg, size_t st, he_svg_style_t *ast, double x1, double y1, double x2, double y2, int *ec) |
Linie zeichnen. Mehr ... | |
int | hsm_et_svg_draw_text (he_svg_t *svg, size_t st, he_svg_style_t *ast, double x, double y, double degrees, char const *str, int me, int *ec) |
Text setzen. Mehr ... | |
int | hsm_et_svg_draw_multi_text_begin (he_svg_t *svg, size_t st, he_svg_style_t *ast, double x, double y, double degrees, int *ec) |
Text aus mehreren Teilen eroeffnen. Mehr ... | |
int | hsm_et_svg_draw_multi_text_add (he_svg_t *svg, char const *str, int me, int *ec) |
Text-Teil zu mehrteiligem Text hinzufuegen. Mehr ... | |
int | hsm_et_svg_draw_multi_text_end (he_svg_t *svg, int *ec) |
Mehrteiligen Text beenden. Mehr ... | |
int | hsm_et_svg_draw_circle (he_svg_t *svg, size_t st, he_svg_style_t *ast, double x, double y, double r, int *ec) |
Kreis zeichnen. Mehr ... | |
int | hsm_et_svg_draw_ellipse (he_svg_t *svg, size_t st, he_svg_style_t *ast, double x, double y, double rx, double ry, double degrees, int *ec) |
Ellipse zeichnen. Mehr ... | |
int | hsm_et_svg_draw_polyline_begin (he_svg_t *svg, size_t st, he_svg_style_t *ast, int *ec) |
Zeichnen einer Polylinie beginnen. Mehr ... | |
int | hsm_et_svg_draw_polyline_add (he_svg_t *svg, double x, double y, int *ec) |
Punkte zu einer mit hsm_et_svg_draw_polyline_begin() begonnenen Polylinie hinzufuegen. Mehr ... | |
int | hsm_et_svg_draw_polyline_end (he_svg_t *svg, int *ec) |
Zeichnen einer mit hsm_et_svg_draw_polyline_begin() begonnenen Polylinie beenden. Mehr ... | |
int | hsm_et_svg_draw_polygon_begin (he_svg_t *svg, size_t st, he_svg_style_t *ast, int *ec) |
Zeichnen eines Polygon beginnen. Mehr ... | |
int | hsm_et_svg_draw_polygon_add (he_svg_t *svg, double x, double y, int *ec) |
Punkte zu einem mit hsm_et_svg_draw_polygon_begin() begonnenen Polygon hinzufuegen. Mehr ... | |
int | hsm_et_svg_draw_polygon_end (he_svg_t *svg, int *ec) |
Zeichnen eines mit hsm_et_svg_draw_polygon_begin() begonnenen Polygon beenden. Mehr ... | |
int | hsm_et_svg_draw_path_begin (he_svg_t *svg, size_t st, he_svg_style_t *ast, int *ec) |
Zeichnen eines zusammengesetzten Pfades beginnen. Mehr ... | |
int | hsm_et_svg_draw_path_add_moveto (he_svg_t *svg, double x, double y, int *ec) |
Moveto-Operation fuer Start eines Pfad-Segmentes. Mehr ... | |
int | hsm_et_svg_draw_path_add_lineto (he_svg_t *svg, double x, double y, int *ec) |
Linie von aktuellem Punkt zu neuem Punkt ziehen. Mehr ... | |
int | hsm_et_svg_draw_path_add_curveto (he_svg_t *svg, double x1, double y1, double x2, double y2, double x, double y, int *ec) |
Kurvensegment von aktuellem Punkt zu Endpunkt (x,y) unter Angabe von zwei Kontrollpunkten P1(x1,y1) und P2(x2,y2) ziehen. Mehr ... | |
int | hsm_et_svg_draw_path_add_closepath (he_svg_t *svg, int *ec) |
Pfad(-Segment) schliessen, um geschlossenen Kurvenzug zu erzeugen. Mehr ... | |
int | hsm_et_svg_draw_path_end (he_svg_t *svg, int *ec) |
Zeichnen eines Pfades beenden, dies ist fuer jeden mit hsm_et_svg_draw_path_begin() begonnenen Pfad erforderlich. Mehr ... | |
int | hsm_et_svg_comment_open (he_svg_t *svg, int *ec) |
Kommentar oeffnen. Mehr ... | |
int | hsm_et_svg_comment_text (he_svg_t *svg, char const *str, int *ec) |
Text zu Kommentar hinzufuegen. Mehr ... | |
int | hsm_et_svg_comment_close (he_svg_t *svg, int *ec) |
Kommentar schliessen, der mit hsm_et_svg_comment_open() geoeffnet wurde. Mehr ... | |
SVG-Graphiken erzeugen.
Die Graphik wird mit der Funktion hsm_et_svg_open() geoeffnet, dabei wird die angegebene Datei zum Schreiben geoeffnet.
Das Styling der gezeichneten Objekte erfolgt im Normalfall ueber CSS-Klassen. Hierfuer muessen die entsprechenden Stile eingerichtet werden, bevor mit dem eigentlichen Zeichnen begonnen wird. Die Anzahl der benutzten Stile wird der Funktion hsm_et_svg_open() als Parameter n_styles angegeben. Der Index fuer die Stile laeuft von 0 bis n_styles-1. Mit den hsm_et_svg_style_set_...()-Funktionen werden Stil-Eigenschaften wie Zeichen- und Fuellfarbe, Linienbreite, Font-Familien, Schriftgroessen... gesetzt.
Fuer geschlossene Pfade sieht der SVG-Standard ein Fuellen mit Schwarz vor, wenn nichts anderes angegeben ist. Stile, die fuer ungefuellte geschlossene Pfade verwendet werden, muessen mit hsm_et_svg_style_set_fill_color_name(...,...,HE_SVG_COLOR_NONE,...) eingerichtet werden.
Nachdem die Einrichtung der Stile erfolgt ist, kann mit den hsm_et_svg_draw_...()-Funktionen gezeichnet werden.
Das Nutzer-Koordinatensystem fuer die Zeichenfunktionen folgt den ueblichen mathematischen Konventionen: x-Werte wachsen von links nach rechts, y-Werte wachsen von unten nach oben, Winkelangaben erfolgen entgegen dem Uhrzeigersinn. Die Umrechnung in das SVG-Koordinatensystem, bei dem y-Werte von oben nach unten wachsen, erfolgt modulintern.
Fuer Polylinien muss zunaechst hsm_et_svg_draw_polyline_begin() aufgerufen werden. Danach koennen durch mehrfachen Aufruf von hsm_et_svg_draw_polyline_add() die Punkte angegeben werden. Jede mit hsm_et_svg_draw_polyline_begin() begonnene Polylinie muss mit hsm_et_svg_draw_polyline_end() beendet werden.
Fuer Polygone und allgemeine Pfade ist das Verfahren ähnlich.
Für allgemeine Pfade werden nicht Punkte sondern Pfad-Segmente angegeben. Die erste Anweisung nach hsm_et_svg_draw_path_begin() sollte hsm_et_svg_draw_path_add_moveto() sein. Daran koennen sich ein oder mehrere hsm_et_svg_draw_path_add_lineto(), hsm_et_svg_draw_path_add_curveto() anschliessen. Soll ein geschlossener Pfad erzeugt werden, wird nach dem letzten Pfad-Stueck hsm_et_svg_draw_path_add_closepath() benutzt. Jeder mit hsm_et_svg_draw_path_begin() begonnene Pfad muss mit hsm_et_svg_draw_path_end() beendet werden.
Die Funktion hsm_et_svg_close() muss aufgerufen werden, um die Datei zu schliessen und die im Laufe der Benutzung dynamisch angeforderten Resourcen wieder freizugeben.
enum he_svg_align_h_t |
enum he_svg_font_weight_t |
Schriftdicke.
enum he_svg_linecap_t |
enum he_svg_linejoin_t |
enum he_svg_unit_t |
void he_svg_style_init | ( | he_svg_style_t * | ptr | ) |
Style initialisieren.
ptr | Der zu initialisierende Style. |
int hsm_et_svg_close | ( | he_svg_t * | svgptr, |
int * | ec | ||
) |
Speichern der SVG-Graphik beenden, Graphik schliessen.
svgptr | Zu schliessende Graphik. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_comment_close | ( | he_svg_t * | svg, |
int * | ec | ||
) |
Kommentar schliessen, der mit hsm_et_svg_comment_open() geoeffnet wurde.
svg | SVG-Datei. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_comment_open | ( | he_svg_t * | svg, |
int * | ec | ||
) |
Kommentar oeffnen.
Jeder geoeffnete Kommentar muss mit hsm_et_svg_comment_close() wieder geschlossen werden, nachdem mit hsm_et_svg_comment_text() der Text in den Kommentar geschrieben wurde.
svg | SVG-Datei. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_comment_text | ( | he_svg_t * | svg, |
char const * | str, | ||
int * | ec | ||
) |
Text zu Kommentar hinzufuegen.
Der Kommentar muss vorher mit hsm_et_svg_comment_open() geoeffnet worden sein. Die Funktion hsm_et_svg_comment_text() kann mehrfach aufgerufen werden, um eine Reihe von Textbausteinen zu kombinieren. Die Texte duerfen nur die in SVG-Kommentaren zulaessigen Zeichen bzw. Textbestandteile enthalten, die Funktion prueft dies nicht nach.
svg | SVG-Datei. |
str | Zu schreibender Text. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_circle | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_style_t * | ast, | ||
double | x, | ||
double | y, | ||
double | r, | ||
int * | ec | ||
) |
Kreis zeichnen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
ast | Zusaetzlicher Style, darf NULL sein (empfohlen). |
x | X-Koordinate Mittelpunkt. |
y | Y-Koordinate Mittelpunkt. |
r | Radius. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_ellipse | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_style_t * | ast, | ||
double | x, | ||
double | y, | ||
double | rx, | ||
double | ry, | ||
double | degrees, | ||
int * | ec | ||
) |
Ellipse zeichnen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
ast | Zusaetzlicher Style, darf NULL sein (empfohlen). |
x | X-Koordinate Mittelpunkt. |
y | Y-Koordinate Mittelpunkt. |
rx | Radius in x-Richtung. |
ry | Radius in y-Richtung. |
degrees | Drehwinkel in Grad entgegen Uhrzeigersinn. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_line | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_style_t * | ast, | ||
double | x1, | ||
double | y1, | ||
double | x2, | ||
double | y2, | ||
int * | ec | ||
) |
Linie zeichnen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
ast | Zusaetzlicher Style, darf NULL sein (empfohlen). |
x1 | X-Koordinate des ersten Punktes. |
y1 | Y-Koordinate des ersten Punktes. |
x2 | X-Koordinate des zweiten Punktes. |
y2 | Y-Koordinate des zweiten Punktes. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_multi_text_add | ( | he_svg_t * | svg, |
char const * | str, | ||
int | me, | ||
int * | ec | ||
) |
Text-Teil zu mehrteiligem Text hinzufuegen.
svg | SVG-Datei. |
str | Zu zeichnender Text. |
me | Flag: Encoding notwendig (im Zweifelsfall 1). |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_multi_text_begin | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_style_t * | ast, | ||
double | x, | ||
double | y, | ||
double | degrees, | ||
int * | ec | ||
) |
Text aus mehreren Teilen eroeffnen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
ast | Zusaetzlicher Style, darf NULL sein (empfohlen). |
x | X-Koordinate des Bezugspunktes. |
y | Y-Koordinate des Bezugspunktes. |
degrees | Drehwinkel in Grad entgegen Uhrzeigersinn. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_multi_text_end | ( | he_svg_t * | svg, |
int * | ec | ||
) |
Mehrteiligen Text beenden.
svg | SVG-Datei. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_path_add_closepath | ( | he_svg_t * | svg, |
int * | ec | ||
) |
Pfad(-Segment) schliessen, um geschlossenen Kurvenzug zu erzeugen.
Es wird eine gerade Linie vom aktuellen Punkt zum Anfangspunkt des Pfad(-Segement)es gezogen. Der Anfangspunkt wird wieder aktueller Punkt. Diese Funktion darf nur zwischen einem hsm_et_svg_draw_path_begin() und dem zugehörigen hsm_et_svg_draw_path_end() benutzt werden, nachdem bereits hsm_et_svg_draw_path_add_moveto() und hsm_et_svg_draw_path_add_lineto() oder hsm_et_svg_draw_path_add_curveto() benutzt wurde.
svg | SVG-Datei. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_path_add_curveto | ( | he_svg_t * | svg, |
double | x1, | ||
double | y1, | ||
double | x2, | ||
double | y2, | ||
double | x, | ||
double | y, | ||
int * | ec | ||
) |
Kurvensegment von aktuellem Punkt zu Endpunkt (x,y) unter Angabe von zwei Kontrollpunkten P1(x1,y1) und P2(x2,y2) ziehen.
Der Endpunkt wird neuer aktueller Punkt fuer die naechsten Operationen. Diese Funktion darf nur zwischen einem hsm_et_svg_draw_path_begin() und dem zugehörigen hsm_et_svg_draw_path_end() benutzt werden.
svg | SVG-Datei. |
x1 | X-Koordinate des Kontrollpunktes 1. |
y1 | Y-Koordinate des Kontrollpunktes 1. |
x2 | X-Koordinate des Kontrollpunktes 2. |
y2 | Y-Koordinate des Kontrollpunktes 2. |
x | X-Koordinate des Endpunktes. |
y | Y-Koordinate des Endpunktes. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_path_add_lineto | ( | he_svg_t * | svg, |
double | x, | ||
double | y, | ||
int * | ec | ||
) |
Linie von aktuellem Punkt zu neuem Punkt ziehen.
Der Endpunkt wird neuer aktueller Punkt fuer die naechsten Operationen. Diese Funktion darf nur zwischen einem hsm_et_svg_draw_path_begin() und dem zugehörigen hsm_et_svg_draw_path_end() benutzt werden.
svg | SVG-Datei. |
x | X-Koordinate des Endpunktes. |
y | Y-Koordinate des Endpunktes. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_path_add_moveto | ( | he_svg_t * | svg, |
double | x, | ||
double | y, | ||
int * | ec | ||
) |
Moveto-Operation fuer Start eines Pfad-Segmentes.
Der angegebene Punkt wird aktueller Punkt. Diese Funktion darf nur zwischen einem hsm_et_svg_draw_path_begin() und dem zugehörigen hsm_et_svg_draw_path_end() benutzt werden.
svg | SVG-Datei. |
x | Neue x-Position. |
y | Neue y-Position. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_path_begin | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_style_t * | ast, | ||
int * | ec | ||
) |
Zeichnen eines zusammengesetzten Pfades beginnen.
Nach dieser Operation kann mit hsm_et_svg_draw_path_add_moveto() ein Anfangspunkt festgelegt werden. Daran können sich mehrere hsm_et_svg_draw_path_add_lineto() oder hsm_et_svg_draw_path_add_curveto() und optional ein hsm_et_svg_draw_path_add_closepath() anschliessen. Jeder mit hsm_et_svg_draw_path_begin() begonnene Pfad muss mit hsm_et_svg_draw_path_end() beendet werden.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
ast | Zusaetzlicher Style, darf NULL sein (empfohlen). |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_path_end | ( | he_svg_t * | svg, |
int * | ec | ||
) |
Zeichnen eines Pfades beenden, dies ist fuer jeden mit hsm_et_svg_draw_path_begin() begonnenen Pfad erforderlich.
svg | SVG-Datei. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_polygon_add | ( | he_svg_t * | svg, |
double | x, | ||
double | y, | ||
int * | ec | ||
) |
Punkte zu einem mit hsm_et_svg_draw_polygon_begin() begonnenen Polygon hinzufuegen.
svg | SVG-Datei. |
x | X-Koordinate des Punktes. |
y | Y-Koordiante des Punktes. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_polygon_begin | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_style_t * | ast, | ||
int * | ec | ||
) |
Zeichnen eines Polygon beginnen.
Die Punkte werden dann durch mehrfache Aufrufe von hsm_et_svg_draw_polygon_add() hinzugefuegt, danach muss mit hsm_et_svg_draw_polygon_end() das Polygon beendet werden.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
ast | Zusaetzlicher Style, darf NULL sein (empfohlen). |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_polygon_end | ( | he_svg_t * | svg, |
int * | ec | ||
) |
Zeichnen eines mit hsm_et_svg_draw_polygon_begin() begonnenen Polygon beenden.
svg | SVG-Datei. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_polyline_add | ( | he_svg_t * | svg, |
double | x, | ||
double | y, | ||
int * | ec | ||
) |
Punkte zu einer mit hsm_et_svg_draw_polyline_begin() begonnenen Polylinie hinzufuegen.
svg | SVG-Datei. |
x | X-Koordinate des Punktes. |
y | Y-Koordiante des Punktes. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_polyline_begin | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_style_t * | ast, | ||
int * | ec | ||
) |
Zeichnen einer Polylinie beginnen.
Die Punkte werden dann durch mehrfache Aufrufe von hsm_et_svg_draw_polyline_add() hinzugefuegt, danach muss mit hsm_et_svg_draw_polyline_end() die Polylinie beendet werden.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
ast | Zusaetzlicher Style, darf NULL sein (empfohlen). |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_polyline_end | ( | he_svg_t * | svg, |
int * | ec | ||
) |
Zeichnen einer mit hsm_et_svg_draw_polyline_begin() begonnenen Polylinie beenden.
svg | SVG-Datei. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_rectangle | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_style_t * | ast, | ||
double | x1, | ||
double | y1, | ||
double | x2, | ||
double | y2, | ||
int * | ec | ||
) |
Rechteck zeichnen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
ast | Zusaetzlicher Style, darf NULL sein (empfohlen). |
x1 | X-Koordinate des ersten Punktes. |
y1 | Y-Koordinate des ersten Punktes. |
x2 | X-Koordinate des zweiten Punktes. |
y2 | Y-Koordinate des zweiten Punktes. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_draw_text | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_style_t * | ast, | ||
double | x, | ||
double | y, | ||
double | degrees, | ||
char const * | str, | ||
int | me, | ||
int * | ec | ||
) |
Text setzen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
ast | Zusaetzlicher Style, darf NULL sein (empfohlen). |
x | X-Koordinate des Bezugspunktes. |
y | Y-Koordinate des Bezugspunktes. |
degrees | Drehwinkel in Grad entgegen Uhrzeigersinn. |
str | Zu zeichnender Text. |
me | Flag: Encoding notwendig (im Zweifelsfall 1). |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
he_svg_t* hsm_et_svg_open | ( | const char * | fn, |
long | w_mm, | ||
long | h_mm, | ||
he_svg_unit_t | units, | ||
double | x_l, | ||
double | x_r, | ||
double | y_b, | ||
double | y_t, | ||
size_t | n_styles, | ||
int | debug, | ||
int * | ec | ||
) |
Neue SVG-Graphik oeffnen.
Bei Erfolg (gueltiger Zeiger als Rueckgabewert) muss die Graphik mit hsm_et_svg_close() wieder geschlossen werden.
fn | Dateiname fuer die zu schreibende SVG-Datei. |
w_mm | Breite der Graphik in px oder mm. |
h_mm | Hoehe der Graphik in px oder mm. |
units | Einheitenangabe fuer Breite und Hoehe:
|
x_l | x-Koordinate am linken Bildrand (Nutzer-Koordinaten). |
x_r | x-Koordinate am rechten Bildrand (Nutzer-Koordinaten). |
y_b | y-Koordinate am unteren Bildrand (Nutzer-Koordinaten). |
y_t | y-Koordinate am oberen Bildrand (Nutzer-Koordinaten). |
n_styles | Anzahl CSS-Style-Klassen. |
debug | Flag: Debug-Ausschriften (Kommentare) produzieren. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_set_use_css | ( | he_svg_t * | svg, |
int | css, | ||
int * | ec | ||
) |
Nutzung von CSS-Styles erlauben oder verbieten.
svg | SVG-Datei. |
css | Flag: 1 = CSS erlaubt, 0 = CSS nicht erlaubt. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_ptr_set_fill_color_name | ( | he_svg_t * | svg, |
he_svg_style_t * | stptr, | ||
he_svg_color_t | name, | ||
int * | ec | ||
) |
Fuell-Farbe ueber Namen festlegen.
Die Fuell-Farbe wird auch fuer Text verwendet.
svg | SVG-Datei. |
stptr | Zu bearbeitender Style. |
name | Name der Farbe:
|
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_ptr_set_fill_color_rgb | ( | he_svg_t * | svg, |
he_svg_style_t * | stptr, | ||
int | r, | ||
int | g, | ||
int | b, | ||
int * | ec | ||
) |
Fuell-Farbe als RGB-Werte festlegen.
Die Fuell-Farbe wird auch fuer Text verwendet.
svg | SVG-Datei. |
stptr | Zu bearbeitender Style. |
r | Rot-Anteil (0 - 255). |
g | Gruen-Anteil (0 - 255). |
b | Blau-Anteil (0 - 255). |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_ptr_set_font_family_name | ( | he_svg_t * | svg, |
he_svg_style_t * | stptr, | ||
char const * | name, | ||
int * | ec | ||
) |
Font-Familie fuer Style festlegen.
svg | SVG-Datei (hier nicht benutzt). |
stptr | Zu bearbeitender Style. |
name | Font-Name(n). |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_ptr_set_font_size | ( | he_svg_t * | svg, |
he_svg_style_t * | stptr, | ||
double | fs, | ||
int * | ec | ||
) |
Font-Groesse fuer style festlegen.
svg | SVG-Datei. |
stptr | Zu bearbeitender Style. |
fs | Font-Groesse in Nutzerkoordinaten. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_ptr_set_font_weight | ( | he_svg_t * | svg, |
he_svg_style_t * | stptr, | ||
he_svg_font_weight_t | fw, | ||
int * | ec | ||
) |
Schriftdicke einstellen.
svg | SVG-Datei. |
stptr | Zu bearbeitender Style. |
fw | Font-Gewicht:
|
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_ptr_set_horizontal_align | ( | he_svg_t * | svg, |
he_svg_style_t * | stptr, | ||
he_svg_align_h_t | al, | ||
int * | ec | ||
) |
Horizontale Textausrichtung festlegen.
svg | SVG-Datei. |
stptr | Zu bearbeitender Style. |
al | Textausrichtung:
|
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_ptr_set_linecap | ( | he_svg_t * | svg, |
he_svg_style_t * | stptr, | ||
he_svg_linecap_t | lc, | ||
int * | ec | ||
) |
Stil fuer Linienenden festlegen.
svg | SVG-Datei. |
stptr | Zu bearbeitender Style. |
lc | Art der Linienenden:
|
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_ptr_set_linejoin | ( | he_svg_t * | svg, |
he_svg_style_t * | stptr, | ||
he_svg_linejoin_t | lj, | ||
int * | ec | ||
) |
Stil fuer Knickpunkte festlegen.
svg | SVG-Datei. |
stptr | Zu bearbeitender Style. |
lj | Art der Knickpunkte:
|
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_ptr_set_linewidth | ( | he_svg_t * | svg, |
he_svg_style_t * | stptr, | ||
double | lw, | ||
int * | ec | ||
) |
Linienbreite festlegen.
svg | SVG-Datei. |
stptr | Zu bearbeitender Style. |
lw | Nicht-negative Linienbreite im Nutzer-Koordinatensystem. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_ptr_set_stroke_color_name | ( | he_svg_t * | svg, |
he_svg_style_t * | stptr, | ||
he_svg_color_t | name, | ||
int * | ec | ||
) |
Zeichen-Farbe ueber Namen festlegen.
svg | SVG-Datei. |
stptr | Zu bearbeitender Style. |
name | Name der Farbe:
|
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_ptr_set_stroke_color_rgb | ( | he_svg_t * | svg, |
he_svg_style_t * | stptr, | ||
int | r, | ||
int | g, | ||
int | b, | ||
int * | ec | ||
) |
Zeichen-Farbe als RGB-Werte festlegen.
svg | SVG-Datei. |
stptr | Zu bearbeitender Style. |
r | Rot-Anteil (0 - 255). |
g | Gruen-Anteil (0 - 255). |
b | Blau-Anteil (0 - 255). |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_set_fill_color_name | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_color_t | name, | ||
int * | ec | ||
) |
Fuell-Farbe ueber Namen festlegen.
Die Fuell-Farbe wird auch fuer Text verwendet.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
name | Name der Farbe:
|
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_set_fill_color_rgb | ( | he_svg_t * | svg, |
size_t | st, | ||
int | r, | ||
int | g, | ||
int | b, | ||
int * | ec | ||
) |
Fuell-Farbe als RGB-Werte festlegen.
Die Fuell-Farbe wird auch fuer Text verwendet.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
r | Rot-Anteil (0 - 255). |
g | Gruen-Anteil (0 - 255). |
b | Blau-Anteil (0 - 255). |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_set_font_family_name | ( | he_svg_t * | svg, |
size_t | st, | ||
char const * | name, | ||
int * | ec | ||
) |
Font-Familie fuer Style festlegen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
name | Font-Name(n). |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_set_font_size | ( | he_svg_t * | svg, |
size_t | st, | ||
double | fs, | ||
int * | ec | ||
) |
Font-Groesse fuer Style festlegen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
fs | Schriftgroesse im Nutzer-Koordinatensystem. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_set_font_weight | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_font_weight_t | fw, | ||
int * | ec | ||
) |
Schriftdicke einstellen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
fw | Font-Gewicht:
|
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_set_horizontal_align | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_align_h_t | al, | ||
int * | ec | ||
) |
Horizontale Textausrichtung festlegen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
al | Textausrichtung:
|
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_set_linecap | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_linecap_t | lc, | ||
int * | ec | ||
) |
Stil fuer Linienenden festlegen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
lc | Art der Linienenden:
|
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_set_linejoin | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_linejoin_t | lj, | ||
int * | ec | ||
) |
Stil fuer Knickpunkte festlegen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
lj | Art der Knickpunkte:
|
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_set_linewidth | ( | he_svg_t * | svg, |
size_t | st, | ||
double | lw, | ||
int * | ec | ||
) |
Linienbreite festlegen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
lw | Nicht-negative Linienbreite im Nutzer-Koordinatensystem. |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_set_stroke_color_name | ( | he_svg_t * | svg, |
size_t | st, | ||
he_svg_color_t | name, | ||
int * | ec | ||
) |
Zeichen-Farbe ueber Namen festlegen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
name | Name der Farbe:
|
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |
int hsm_et_svg_style_set_stroke_color_rgb | ( | he_svg_t * | svg, |
size_t | st, | ||
int | r, | ||
int | g, | ||
int | b, | ||
int * | ec | ||
) |
Zeichen-Farbe als RGB-Werte festlegen.
svg | SVG-Datei. |
st | Index-Nummer fuer Style. |
r | Rot-Anteil (0 - 255). |
g | Gruen-Anteil (0 - 255). |
b | Blau-Anteil (0 - 255). |
ec | Adresse einer Fehlercode-Variable, darf NULL sein. |