%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/vacivi36/moodledata/filedir/1e/35/
Upload File :
Create Path :
Current File : /home/vacivi36/moodledata/filedir/1e/35/1e35051f466802bf51eef9e4c4dd567dd3296f4b

/*global d3*/
H5P.Chart.PieChart = (function () {

  /**
   * Creates a pie chart from the given data set.
   *
   * @class
   * @param {array} params from semantics, contains data set
   * @param {H5P.jQuery} $wrapper
   */
  function PieChart(params, $wrapper) {
    var self = this;
    var dataSet = params.listOfTypes;

    var defColors = d3.scale.ordinal()
      .range(["#90EE90", "#ADD8E6", "#FFB6C1", "#B0C4DE", "#D3D3D3", "#20B2AA", "#FAFAD2"]);

    // Create SVG
    var svg = d3.select($wrapper[0])
      .append("svg");

    svg.append("desc").html(params.figureDefinition);

    var translater = svg.append("g")
      .attr("class", "translater");

    var pie = d3.layout.pie()
      .sort(null)
      .value(function(d) {
        return d.value;
      });

    var arcs = translater.selectAll(".arc")
      .data(pie(dataSet))
      .enter().append("g")
      .attr("class", "arc");

    var paths = arcs.append("path")
      .style("fill", function(d) {
        if (d.data.color !== undefined) {
          return d.data.color;
        }
        return defColors(dataSet.indexOf(d.data) % 7);
      });

    var texts = arcs.append("svg:text")
      .attr("class", "text")
      .attr("aria-hidden", true)
      .attr("text-anchor", "middle")
      .text(function(d, i) {
        return dataSet[i].text + ': ' + dataSet[i].value;
      })
      .attr("fill", function (d) {
        if (d.data.fontColor !== undefined) {
          return d.data.fontColor;
        }
      });

    /**
     * Fit the current chart to the size of the wrapper.
     */
    self.resize = function () {
      // Scale to smallest value of height and width
      var style = window.getComputedStyle($wrapper[0]);
      var scaleTo = Math.min(parseFloat(style.width), parseFloat(style.height));

      // Do the math
      var width = scaleTo;
      var height = scaleTo;
      var padding = 0;
      var radius = Math.min(width, height) / 2;
      var arc = d3.svg.arc()
        .outerRadius(radius - padding)
        .innerRadius(0);

      // Update positions
      svg.attr('width', width + 'px')
        .attr('height', height + 'px');
      translater.attr("transform", "translate(" + (width / 2) + "," + (height / 2) + ")");
      paths.attr("d", arc);
      texts.attr("transform", function(d) {
        d.innerRadius = 0;
        d.outerRadius = radius - padding;
        return "translate(" + arc.centroid(d) + ")";
      });
    };
  }

  return PieChart;
})();

Zerion Mini Shell 1.0