SVG – Learning by Coding
1: <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
2: <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
3: "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
4: <!ATTLIST svg xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink">
5: ]>
6:
7: <!-- SVG - Learning by Coding - http://www.datenverdrahten.de/svglbc/ -->
8: <!-- Author: Dr. Thomas Meinike 11/03 - thomas@handmadecode.de -->
9:
10:
11: <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
12: zoomAndPan="disable">
13:
14: <title>SVG - Learning by Coding</title>
15: <desc>SVG-Spezifikation in Beispielen</desc>
16:
17: <defs>
18:
19: <style type="text/css">
20: <![CDATA[
21:
22: polygon
23: {
24: fill: #FFF;
25: stroke: #00C;
26: }
27:
28: ]]>
29: </style>
30:
31:
32: <script type="text/javascript">
33: <![CDATA[
34:
35: function PolygonArea(click_evt)
36: {
37: // Flaecheninhalt eines Polygons
38: var points,p_arr,n=0,area=0;
39:
40: points=click_evt.target.getAttribute("points");
41: points=points.replace(/s/g,",");
42: p_arr=points.split(",");
43: n=p_arr.length;
44:
45: for(i=0;i<n-2;i+=2)area+=Det(p_arr[i],p_arr[i+2],p_arr[i+1],p_arr[i+3]);
46: area+=Det(p_arr[n-2],p_arr[0],p_arr[n-1],p_arr[1]);
47:
48: return Math.abs(area/2);
49: }
50:
51:
52: function Det(a11,a12,a21,a22)
53: {
54: // Determinate einer quadratischen Matrix
55: return a11*a22-a12*a21;
56: }
57:
58: ]]>
59: </script>
60:
61: </defs>
62:
63: <text x="30" y="30" style="fill: #000; font-size: 24px">
64: Polygonfläche berechnen
65: </text>
66:
67: <polygon points="79,72 45,55 45,89" onclick="alert(PolygonArea(evt)+' px^2')"/>
68: <polygon points="158,70 129,52 100,70 129,87" onclick="alert(PolygonArea(evt)+' px^2')"/>
69: <polygon points="222,71 206,52 179,60 179,82 206,90" onclick="alert(PolygonArea(evt)+' px^2')"/>
70: <polygon points="284,71 273,88 252,88 241,71 252,53 273,53" onclick="alert(PolygonArea(evt)+' px^2')"/>
71: <text x="110" y="120">Objekte anklicken!</text>
72:
73: </svg>
[zum Anfang]