vki_zwirbeli
Grünschnabel
Guten Tag
Ich habe eine XML-Datei mit Polarkoordinaten (Winkel und Distanz). Die Winkel sind in gon angegebenin (Umrechnung in Radian 1 gon = 2 PI rad / 400). Ich möchte aus diesen Angaben x/y-Koordinaten berechnen und später im SVG etwas darstellen.
Das Ganze soll innerhalb eines XSL-Stylesheets geschehen.
XSL kennt ja keine trigonometrische Funktionen, weshalb ich die Umrechnung mit JavaScript machen muss. Wie kann ich jetzt aber aus dem XSL meine Winkel und Distanz-Variable an JavaScript übergeben, und nachher die x/y-Koordinaten wieder zurückgeben?
Ich habe mal eine JavaScript Funktion erstellt, die das gewünschte Resultat liefert. Dann hab ich versucht, die ins XSL einzubauen. Ich habe das mit einem Named Template versucht, um die Variablen als Parameter ins JS zu übergeben. Wie aber bekomme ich die Variablen aus dem JS ins XSL und dann aus dem Berechnungs-Template, sodass ich sie später im SVG verwenden kann?
Angehängt meine JS Funktion und mein Template.
Vielen Dank für eure Hilfe!
<html>
<head>
<script type="text/javascript">
var azi=99;
var dist=11.97;
function JSCalcCoord(azi,dist)
{
var x,y;
var radians;
var cos, sin;
radians = (azi * 400) / (2 * Math.PI);
cos = Math.cos(radians);
sin = Math.sin(radians);
x = dist * cos;
y = dist * sin;
// Neues Objekt
return {x:x,y:y};
}
</script>
</head>
<body>
<script type="text/javascript">
Koord=JSCalcCoord(azi,dist);
document.write('x-Koord: '+Koord.x+' y-Koord: '+Koord.y );
</script>
</body>
</html>
-----------------------------------------------
<xsl:template name="JSCalcCoord">
<xsl
aram name="azi"/>
<xsl
aram name="dist"/>
<SCRIPT language="JavaScript">
var radians = (<xsl:value-of select="$azi"/> * 400) / (2 * Math.PI)";
var cos = Math.cos(radians);
var sin = Math.sin(radians);
var x_koord = $dist * cos
var y_koord = $dist * sin
return {x:x,y:y}; // ****?
</SCRIPT>
</xsl:template>
Ich habe eine XML-Datei mit Polarkoordinaten (Winkel und Distanz). Die Winkel sind in gon angegebenin (Umrechnung in Radian 1 gon = 2 PI rad / 400). Ich möchte aus diesen Angaben x/y-Koordinaten berechnen und später im SVG etwas darstellen.
Das Ganze soll innerhalb eines XSL-Stylesheets geschehen.
XSL kennt ja keine trigonometrische Funktionen, weshalb ich die Umrechnung mit JavaScript machen muss. Wie kann ich jetzt aber aus dem XSL meine Winkel und Distanz-Variable an JavaScript übergeben, und nachher die x/y-Koordinaten wieder zurückgeben?
Ich habe mal eine JavaScript Funktion erstellt, die das gewünschte Resultat liefert. Dann hab ich versucht, die ins XSL einzubauen. Ich habe das mit einem Named Template versucht, um die Variablen als Parameter ins JS zu übergeben. Wie aber bekomme ich die Variablen aus dem JS ins XSL und dann aus dem Berechnungs-Template, sodass ich sie später im SVG verwenden kann?
Angehängt meine JS Funktion und mein Template.
Vielen Dank für eure Hilfe!
<html>
<head>
<script type="text/javascript">
var azi=99;
var dist=11.97;
function JSCalcCoord(azi,dist)
{
var x,y;
var radians;
var cos, sin;
radians = (azi * 400) / (2 * Math.PI);
cos = Math.cos(radians);
sin = Math.sin(radians);
x = dist * cos;
y = dist * sin;
// Neues Objekt
return {x:x,y:y};
}
</script>
</head>
<body>
<script type="text/javascript">
Koord=JSCalcCoord(azi,dist);
document.write('x-Koord: '+Koord.x+' y-Koord: '+Koord.y );
</script>
</body>
</html>
-----------------------------------------------
<xsl:template name="JSCalcCoord">
<xsl
<xsl
<SCRIPT language="JavaScript">
var radians = (<xsl:value-of select="$azi"/> * 400) / (2 * Math.PI)";
var cos = Math.cos(radians);
var sin = Math.sin(radians);
var x_koord = $dist * cos
var y_koord = $dist * sin
return {x:x,y:y}; // ****?
</SCRIPT>
</xsl:template>