wip: svg
This commit is contained in:
parent
78ce96adb2
commit
d8e771ffb4
3 changed files with 52 additions and 0 deletions
|
@ -17,6 +17,8 @@ $ python converter.py l-systems.csv
|
||||||
|
|
||||||
Pour traceur : java -jar saxon-he-10.3.jar -s:tortue.xml -xsl:traceur.xsl -o:traceur.xml
|
Pour traceur : java -jar saxon-he-10.3.jar -s:tortue.xml -xsl:traceur.xsl -o:traceur.xml
|
||||||
Pour valider : xmllint --schema traceur.xsd traceur.xml 1>/dev/null
|
Pour valider : xmllint --schema traceur.xsd traceur.xml 1>/dev/null
|
||||||
|
|
||||||
|
Pour SVG : java -jar saxon-he-10.3.jar -s:traceur.xml -xsl:svg.xsl -o:image.svg
|
||||||
-->
|
-->
|
||||||
|
|
||||||
## Rapport
|
## Rapport
|
||||||
|
|
|
@ -80,6 +80,7 @@ première partie du projet. % TODO: Justifier pk
|
||||||
\item[26 avril] Écriture du schéma XML validant le format du fichier XML généré
|
\item[26 avril] Écriture du schéma XML validant le format du fichier XML généré
|
||||||
\item[27 avril] Écriture des fichiers XSL et XSD pour la tortue
|
\item[27 avril] Écriture des fichiers XSL et XSD pour la tortue
|
||||||
\item[2 mai\sp] Écriture des fichiers XSL et XSD pour le traceur
|
\item[2 mai\sp] Écriture des fichiers XSL et XSD pour le traceur
|
||||||
|
\item[4 mai\sp] Écriture des fichiers XSL pour la conversion en SVG
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
|
|
||||||
|
|
49
svg.xsl
Normal file
49
svg.xsl
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<xsl:transform version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
|
xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<xsl:output indent="yes" />
|
||||||
|
|
||||||
|
<xsl:template match="/">
|
||||||
|
<svg version="1.0"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<xsl:apply-templates select="traceur" />
|
||||||
|
</svg>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<!-- Template pour le traceur -->
|
||||||
|
<xsl:template match="traceur">
|
||||||
|
<xsl:variable name="path">
|
||||||
|
<xsl:call-template name="generatePath">
|
||||||
|
<xsl:with-param name="idx" select="1" />
|
||||||
|
<xsl:with-param name="path" select="'M 0 0'" />
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:variable>
|
||||||
|
|
||||||
|
<path
|
||||||
|
d="{$path}" stroke="green" fill="none" />
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<!-- Fonction récursive terminale -->
|
||||||
|
<xsl:template name="generatePath">
|
||||||
|
<xsl:param name="idx" />
|
||||||
|
<xsl:param name="path" />
|
||||||
|
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$idx > count(LINETO)">
|
||||||
|
<xsl:value-of select="$path" />
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:variable name="x"
|
||||||
|
select="LINETO[$idx]/@x" />
|
||||||
|
<xsl:variable name="y"
|
||||||
|
select="LINETO[$idx]/@y" />
|
||||||
|
|
||||||
|
<xsl:call-template name="generatePath">
|
||||||
|
<xsl:with-param name="idx" select="$idx + 1" />
|
||||||
|
<xsl:with-param name="path" select="concat($path, ' L ', $x, ' ', $y)" />
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
</xsl:transform>
|
Reference in a new issue