我使用来自道场制图的ThreeD主题显示图形。 当我修改数据以便我可以为图中某些 条显示不同的颜色时,我将失去3D外观。对于ThreeD他们改变道场制图上的颜色ThreeD主题
默认的颜色是红色
{Y: “15”,提示: “15个报警信息”,填写: '黄'}
添加 '填充:黄' 上的数据项的变化酒吧变黄, 但我失去了3D的外观。
关于改变主色调和保持3D外观的最佳方式的任何想法?
我使用来自道场制图的ThreeD主题显示图形。 当我修改数据以便我可以为图中某些 条显示不同的颜色时,我将失去3D外观。对于ThreeD他们改变道场制图上的颜色ThreeD主题
默认的颜色是红色
{Y: “15”,提示: “15个报警信息”,填写: '黄'}
添加 '填充:黄' 上的数据项的变化酒吧变黄, 但我失去了3D的外观。
关于改变主色调和保持3D外观的最佳方式的任何想法?
我能够抓住从ThreeD.js的代码,并把它应用到我的应用程序来实现:
var colors = ["#f00", "#0f0", "#00f", "#ff0", "#0ff", "#f0f", "dojox/charting/themes/common"];
var defaultFill = {type: "linear", space: "shape", x1: 0, y1: 0, x2: 100, y2: 0};
// 3D cylinder map is calculated using dojox.gfx3d
var cyl3dMap = [
{o: 0.00, i: 174}, {o: 0.08, i: 231}, {o: 0.18, i: 237}, {o: 0.30, i: 231},
{o: 0.39, i: 221}, {o: 0.49, i: 206}, {o: 0.58, i: 187}, {o: 0.68, i: 165},
{o: 0.80, i: 128}, {o: 0.90, i: 102}, {o: 1.00, i: 174}
];
var hiliteIndex = 2;
var hiliteIntensity = 100;
var lumStroke = 50;
var cyl3dFills = ArrayUtil.map(colors, function(c){
var fill = lang.delegate(defaultFill);
var colors = fill.colors = gradientGenerator.generateGradientByIntensity(c, cyl3dMap),
hilite = colors[hiliteIndex].color;
// add highlight
hilite.r += hiliteIntensity;
hilite.g += hiliteIntensity;
hilite.b += hiliteIntensity;
hilite.sanitize();
return fill;
});
当我创建用于将图表数据的JSON字符串,我使用cyl3dFill [X]设置颜色:
{y: "10", tooltip: "10 Alarms", fill: cyl3dFill[3]} //Sets 3D Yellow fill
如果填充不被添加到该数据记录,默认颜色被假定(红)。 不知道这是不是一个坏方法,但我喜欢它....
不知道下一个方法与三维主题,但它看起来像它改变了主题的颜色。不能得到的方法工作...
只需基于ThreeD创建一个新主题,并根据要使用的颜色更改颜色变量。 我建议你:
感谢您的信息菲利普!我没有创建自己的主题文件,而是从ThreeD.js中获取代码,并将JSON字符串中每个图形栏所需的颜色应用。请参阅下面的文章... – GoinOff 2013-04-25 16:10:35
克隆该文件允许您在其他地方重复使用该主题,而不是在每次要应用该特定主题时进行复制/粘贴... – Philippe 2013-04-25 18:31:57
感谢您对sitepen的链接,超级有用。现在也要制作我自己的定制主题。回到实验室.... – GoinOff 2013-04-25 19:56:16