This commit is contained in:
Mylloon 2024-05-04 02:42:50 +02:00
parent 78ce96adb2
commit d8e771ffb4
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
3 changed files with 52 additions and 0 deletions

View file

@ -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

View file

@ -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
View 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>