JavaScript. Подробное руководство, 6-е издание, стр. 353
<b> х2 + "," + у2 + // Дуга заканчивается в точке (х2,у2)</b><b> Z"; // Закончить рисование в точке (сх,су)</b><b> // Теперь установить атрибуты элемента <svg:path></b><b> path.setAttribute("d", d); // Установить описание контура</b><b> path.setAttribute("fill", colors[i]); // Установить цвет сектора</b><b> path.setAttribute("stroke", "black"); // Рамка сектора - черная</b><b> path.setAttribute("stroke-width”, "2"); // 2 единицы толщиной</b><b> chart.appendChild(path); // Вставить сектор в диаграмму</b><b> // Следующий сектор начинается в точке, где закончился предыдущий</b><b> startangle = endangle;</b><b> // Нарисовать маленький квадрат для идентификации сектора в легенде</b><b> var icon = document.createElementNS(svgns, "rect");</b><b> icon.setAttribute("x”, lx); // Координаты квадрата</b><b> icon.setAttribute("y", ly + ЗО*і);</b><b> icon.setAttribute("width", 20); // Размер квадрата</b><b> icon.setAttribute("height", 20);</b><b> icon.setAttribute("fill", colors[i]); // Тем же цветом, что и сектор</b><b> icon.setAttribute("stroke", "black"); // Такая же рамка,</b><b> icon.setAttribute("stroke-width", "2");</b><b> chart.appendChild(icon); // Добавить в диаграмму</b><b> // Добавить метку правее квадрата</b><b> var label = document.createElementNS(svgns, "text");</b><b> label.setAttribute("x", lx + 30); // Координаты текста</b><b> label.setAttribute("y", ly + ЗО*і + 18);</b><b> // Стиль текста можно также определить посредством таблицы CSS-стилей</b><b> label.setAttribute("font-family", "sans-serif");</b><b> label.setAttribute("font-size", "16");</b><b> // Добавить текстовый DOM-узел в элемент <svg:text></b><b> label.appendChild(document.createTextNode(labels[і]));</b><b> chart.appendChild(label); // Добавить текст в диаграмму</b><b> }</b><b> return chart;</b><b>}</b>Программный код в примере 21.2 относительно прост. Здесь выполняются некоторые математические расчеты для преобразования исходных данных в углы секторов круговой диаграммы. Однако основную часть примера составляет программный код, создающий SVG-элементы и выполняющий настройку их атрибутов. Чтобы этот пример мог работать в броузерах, не полностью поддерживающих стандарт HTML5, здесь формат SVG интерпретируется как грамматика XML и вместо метода
<b>createElement()</b><b>createElementNS()</b>Самая малопонятная часть этого примера - программный код, выполняющий рисование сектора диаграммы. Для отображения каждого сектора используется тег
<b><svg:path></b><b>d</b><b><svg:path>.</b><b>М</b><b>L</b><b>А</b>Обратите внимание, что функция
<b>pieChart()</b><b><svg>,</b><b><html></b><b><head></b><b> <script src="PieChart.js"x/scr.ipt></b><b></head></b><b><body onload="document.body.appendChild(</b><b> pieChart([12, 23, 34, 45], 640, 400, 200, 200, 150,</b><b> ['красный','синий’,'желтый','зеленый'],</b><b> ['Север','Юг', 'Восток', 'Запад'], 400, 100));</b>