Как добавить разные цвета для диапазона значений в Grey_CircularLinearGauge из DOJO

0

Я пытаюсь использовать инструментарий dojo и должен отображать Grey_CircularLinearGauge. Подобно этому: http://download.dojotoolkit.org/release-1.8.3/dojo-release-1.8.3/dojox/dgauges/tests/test_Grey_CircularLinearGauge.html Изображение 174551

и мне нужно добавить разные цвета на основе диапазона значений для этого Grey_CircularLinearGauge. например: от 0 до 30 зеленых, от 30 до 70 желтых и от 70 до 100. Подобно этому: Изображение 174551

Может ли кто-нибудь мне помочь?

Теги:
dojo

1 ответ

0
Лучший ответ

Я, наконец, решил вашу проблему! Посмотрите на эту скрипку: http://jsfiddle.net/v7WwD/ Мне нужно глубоко вникать в код, чтобы запустить этот.

Сначала я устанавливаю div в html, где я подключаю датчик:

 <div style="width:300px;height:300px;left:100px;top:100px" id="gauge">
       <br />
 </div>

затем я установил его следующим образом:

  require(["dojox/dgauges/components/grey/CircularLinearGauge"],
     function (CircularLinearGauge) {

 var myGauge = new CircularLinearGauge({
    value: 20,
    minimum: 0,
    maximum: 150,
    majorTickInterval: 25,
    minorTickIntervall: 5,
    indicatorColor: "#000080", //Zeiger
    fillColor: "#FFFFFF"
}, dojo.byId("gauge"));
myGauge.startup();
});

Окончательное создание датчика начинается здесь:

  require(["dojo/ready", "dijit", "dojox/dgauges/TextIndicator",
           "dojox/dgauges/LinearScaler","dojox/dgauges/CircularScale",
           "dojox/dgauges/CircularRangeIndicator","dojox/dgauges/CircularValueIndicator"], 
 function (ready, dijit, TextIndicator, LinearScaler, CircularScale,
           CircularRangeIndicator,CircularValueIndicator) {
     ready(function () {

  var gauge = dijit.registry.byId("gauge"); // ADAPT THIS TO YOUR GAUGE ID

 gauge.addElement("background", function(g){
    g.createEllipse({
      cx: 100,
      cy: 100,
      rx: 100,
      ry: 100
    }).setFill("#444444");
  });

  // The scaler
  var scaler = new LinearScaler({
    minimum: 0,
    maximum: 150,
    majorTickInterval: 20,
    minorTickInterval: 5
  });

   var scale = new CircularScale({
    scaler: scaler,
    originX: 100,
    originY: 100,
    startAngle: 110,
    endAngle: 70,
    radius: 70,
    labelPosition: "outside",
    tickShapeFunc: function(group, scale, tick){
      return group.createLine({
        x1: tick.isMinor ? 2 : 0,
        y1: 0,
        x2: tick.isMinor ? 8 : 12,
        y2: 0
      }).setStroke({
        color: tick.isMinor ? "black" : "white",
        width: tick.isMinor ? 0.5 : 1
      });
    }
  });
    gauge.addElement("scale", scale);

  // A value indicator
  var indicator = new CircularValueIndicator({
    interactionArea: "indicator",
    indicatorShapeFunc: function(group){
      return group.createPolyline([20, -6, 60, 0, 20, 6, 20, -6]).setFill("black").setStroke("white");
    },
    value: 50
  });
  scale.addIndicator("indicator", indicator);

   //make green range
    var rangeIndicatorGreen = new CircularRangeIndicator({
    start: 0,
    value: 30,
    radius: 62,
    startThickness:5,
    endThickness: 5,
    fill: "green",
    interactionMode: "none"
  });
  scale.addIndicator("rangeIndicatorGreen", rangeIndicatorGreen, true);

   //make yellow range 
var rangeIndicatoryellow = new CircularRangeIndicator({
    start: 30,
    value: 70,
    radius: 62,
    startThickness:5,
    endThickness: 5,
    fill: "yellow",
    interactionMode: "none"
  });
  scale.addIndicator("rangeIndicatoryellow", rangeIndicatoryellow, true)

 //make red range 
 var rangeIndicatorRed = new CircularRangeIndicator({
    start: 70,
    value: 100,
    radius: 62,
    startThickness:5,
    endThickness: 5,
    fill: "red",
    interactionMode: "none"
  });
  scale.addIndicator("rangeIndicatorRed", rangeIndicatorRed, true);

    // Indicator Text"
   indicator = gauge._elementsIndex.scale._indicators[0];
    var indicatorText = new TextIndicator();
    indicatorText.set("indicator", indicator);
    indicatorText.set("x", 100);
    indicatorText.set("y", 100);
    gauge.addElement("indicatorText", indicatorText);

   });
});

С уважением, Мириам

  • 0
    Спасибо за ответ Мириам. Но я хочу, чтобы цветовая гамма в Grey_CircularLinearGauge не была в GlossyCircularGauge. Не могли бы вы помочь мне ..
  • 0
    РЕШИТЬ! Посмотри!
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню