162 lines
7.2 KiB
HTML
162 lines
7.2 KiB
HTML
<!DOCTYPE html>
|
|
<html lang='en'>
|
|
<head>
|
|
<title>extend-namespace-01-f-manual.svg</title>
|
|
<meta charset='utf-8'>
|
|
</head>
|
|
<body>
|
|
<h1>Source SVG: extend-namespace-01-f-manual.svg</h1>
|
|
<svg version="1.1" baseProfile="full" onload="onLoad(evt)" id="svg-root"
|
|
width="100%" height="100%" viewBox="0 0 480 360"
|
|
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<!--======================================================================-->
|
|
<!--= SVG 1.1 2nd Edition Test Case =-->
|
|
<!--======================================================================-->
|
|
<!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
|
|
<!--= Institute of Technology, European Research Consortium for =-->
|
|
<!--= Informatics and Mathematics (ERCIM), Keio University). =-->
|
|
<!--= All Rights Reserved. =-->
|
|
<!--= See http://www.w3.org/Consortium/Legal/. =-->
|
|
<!--======================================================================-->
|
|
|
|
<title id="test-title">$RCSfile: extend-namespace-01-f.svg,v $</title>
|
|
<defs>
|
|
<font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
|
|
<font-face-src>
|
|
<font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
|
|
</font-face-src>
|
|
</font-face>
|
|
</defs>
|
|
<g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
|
|
<g xmlns:bd="http://example.org/ExampleBusinessData" xmlns="http://www.w3.org/2000/svg">
|
|
<defs>
|
|
<script type="text/ecmascript">
|
|
var svg_ns = "http://www.w3.org/2000/svg";
|
|
var bd_ns = "http://example.org/ExampleBusinessData";
|
|
function onLoad(evt){
|
|
// Get Document
|
|
var svgElement = evt.target;
|
|
var doc = svgElement.ownerDocument;
|
|
|
|
var resultsElement = doc.getElementById('results');
|
|
var gElement = doc.getElementById('PieParent');
|
|
|
|
// Count the number of regions.
|
|
RegionNodeList = doc.getElementsByTagNameNS(bd_ns, "Region");
|
|
regionCount = RegionNodeList.length;
|
|
|
|
// Get the region data.
|
|
RegionNameNodeList = doc.getElementsByTagNameNS(bd_ns, "RegionName");
|
|
RegionResultNodeList = doc.getElementsByTagNameNS(bd_ns, "RegionResult");
|
|
|
|
// Get the sum of the values of the regions.
|
|
var total = 0;
|
|
for (regionIndex = 0; regionIndex < regionCount; regionIndex++)
|
|
total = total + Number(RegionResultNodeList.item(regionIndex).firstChild.nodeValue);
|
|
|
|
// Build a pie chart.
|
|
var startAngle = 0;
|
|
for (regionIndex = 0; regionIndex < regionCount; regionIndex++) {
|
|
regionName = RegionNameNodeList.item(regionIndex).firstChild.nodeValue;
|
|
regionResult = Number(RegionResultNodeList.item(regionIndex).firstChild.nodeValue);
|
|
|
|
// Build the pie slice.
|
|
textElement = doc.createElementNS(svg_ns, "text");
|
|
textNode = doc.createTextNode(regionName);
|
|
textElement.appendChild(textNode);
|
|
pathElement = doc.createElementNS(svg_ns, "path");
|
|
|
|
endAngle = startAngle - regionResult * Math.PI * 2 / total;
|
|
dAttribute = "M240,170 L";
|
|
gray = Math.round(Number(255 * (regionIndex+2)) / (regionCount+2));
|
|
midAngle = (startAngle + endAngle) / 2;
|
|
textElement.setAttributeNS(null, "x", Math.round(240+65*Math.cos(midAngle)));
|
|
textElement.setAttributeNS(null, "y", Math.round(170+65*Math.sin(midAngle)));
|
|
|
|
dAttribute = dAttribute + Math.round(240+100*Math.cos(startAngle));
|
|
dAttribute = dAttribute + ',';
|
|
dAttribute = dAttribute + Math.round(170+100*Math.sin(startAngle));
|
|
dAttribute = dAttribute + ' A100,100 0 0,0 ';
|
|
dAttribute = dAttribute + Math.round(240+100*Math.cos(endAngle));
|
|
dAttribute = dAttribute + ',';
|
|
dAttribute = dAttribute + Math.round(170+100*Math.sin(endAngle));
|
|
dAttribute = dAttribute + 'z';
|
|
pathElement.setAttributeNS(null, "d", dAttribute);
|
|
pathElement.setAttributeNS(null, "fill", "rgb("+gray+","+gray+","+gray+")");
|
|
pathElement.setAttributeNS(null, "stroke", "black");
|
|
pathElement.setAttributeNS(null, "stroke-width", "2");
|
|
|
|
// Temporary, for CSS styling.
|
|
pathElement.setAttributeNS(null, "fill", "rgb("+gray+","+gray+","+gray+")");
|
|
pathElement.setAttributeNS(null, "stroke", "black");
|
|
pathElement.setAttributeNS(null, "stroke-width", "2");
|
|
|
|
if (regionIndex == 0) {
|
|
var firstSliceOffset = 30;
|
|
var transformValue = "translate(" +
|
|
Math.round(firstSliceOffset * Math.cos(midAngle)) +
|
|
"," +
|
|
Math.round(firstSliceOffset * Math.sin(midAngle)) +
|
|
")";
|
|
pathElement.setAttributeNS(null, "transform", transformValue);
|
|
textElement.setAttributeNS(null, "transform", transformValue);
|
|
pathElement.setAttributeNS(null, "fill", "#FF6666");
|
|
pathElement.setAttributeNS(null, "stroke", "#0000FF");
|
|
pathElement.setAttributeNS(null, "stroke-width", "3");
|
|
|
|
// Temporary, for CSS styling.
|
|
pathElement.setAttributeNS(null, "fill", "#FF8888");
|
|
pathElement.setAttributeNS(null, "stroke", "#0000FF");
|
|
pathElement.setAttributeNS(null, "stroke-width", "3");
|
|
|
|
}
|
|
gElement.appendChild(pathElement);
|
|
gElement.appendChild(textElement);
|
|
startAngle = endAngle;
|
|
}
|
|
}
|
|
</script>
|
|
</defs>
|
|
<bd:Results id="results">
|
|
<bd:Region>
|
|
<bd:RegionName>East</bd:RegionName>
|
|
<bd:RegionResult>3</bd:RegionResult>
|
|
</bd:Region>
|
|
<bd:Region>
|
|
<bd:RegionName>North</bd:RegionName>
|
|
<bd:RegionResult>4</bd:RegionResult>
|
|
</bd:Region>
|
|
<bd:Region>
|
|
<bd:RegionName>West</bd:RegionName>
|
|
<bd:RegionResult>5</bd:RegionResult>
|
|
</bd:Region>
|
|
<bd:Region>
|
|
<bd:RegionName>Central</bd:RegionName>
|
|
<bd:RegionResult>3.2</bd:RegionResult>
|
|
</bd:Region>
|
|
<bd:Region>
|
|
<bd:RegionName>South</bd:RegionName>
|
|
<bd:RegionResult>6</bd:RegionResult>
|
|
</bd:Region>
|
|
</bd:Results>
|
|
<text font-family="Arial" font-size="16" text-anchor="middle" x="240" y="30">
|
|
Pie chart built from data in a different namespace.
|
|
</text>
|
|
</g>
|
|
<g id="PieParent" font-family="Arial" text-anchor="middle" font-size="14">
|
|
<desc>Pie chart is built within this 'g' element</desc>
|
|
</g>
|
|
</g>
|
|
<g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
|
|
<text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
|
|
</g>
|
|
<rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
|
|
<!-- comment out this watermark once the test is approved -->
|
|
<!--<g id="draft-watermark">
|
|
<rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
|
|
<text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
|
|
text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
|
|
</g>-->
|
|
</svg>
|
|
</body>
|
|
</html>
|