/* * Verrückte Turing-Maschinen — A turing complete game * Copyright (C) 2016 Christian Fraß * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ module mod_vtm_manifestation { /** * @author kcf */ export const svg_float_praezission : int = 4; /** * @author kcf */ export const svg_form_pfeil : string = "M +4 0 L 0 +1 L 0 -1 Z"; /** * @author kcf */ export function svg_pfad ( vertices : Array, schliessen : boolean = true, attribute : {[schlussel : string] : string} = {}, ) : mod_vtm_helfer.typ_xmlknoten { let d : string = ""; vertices.forEach ( (vertex, index) => { let c : string = ((index <= 0) ? "M" : "L"); let x : string = vertex.x.toFixed(svg_float_praezission); let y : string = vertex.y.toFixed(svg_float_praezission); d += [c, x, y].join(" "); } ) ; if (schliessen) d += "Z"; attribute["d"] = d; return (mod_vtm_helfer.xmlknoten_normal_erstellen_erweitert("path", attribute)); } /** * @author kcf */ export function svg_wurzel ( von_x : float, von_y : float, bis_x : float, bis_y : float, hoehe : int = 500, breite : int = 500, kinder : Array = [] ) : mod_vtm_helfer.typ_xmlknoten { return ( mod_vtm_helfer.xmlknoten_normal_erstellen_erweitert ( "svg", { "xmlns": "http://www.w3.org/2000/svg", "xmlns:xlink": "http://www.w3.org/1999/xlink", "width": breite.toFixed(0), "height": hoehe.toFixed(0), "viewBox": [von_x.toFixed(4), von_y.toFixed(4), (bis_x-von_x).toFixed(4), (bis_y-von_y).toFixed(4)].join(" "), }, kinder, ) ); } }