* @function FeatureThemeRing.prototype.assembleShapes * @description 装配图形(扩展接口)。
()
| 82 | * @description 装配图形(扩展接口)。 |
| 83 | */ |
| 84 | assembleShapes() { |
| 85 | // 重要步骤:初始化参数 |
| 86 | if (!this.initBaseParameter()) { |
| 87 | return; |
| 88 | } |
| 89 | |
| 90 | // 一个默认 style 组 |
| 91 | var defaultStyleGroup = [ |
| 92 | {fillColor: "#ff9277"}, {fillColor: "#dddd00"}, {fillColor: "#ffc877"}, {fillColor: "#bbe3ff"}, {fillColor: "#d5ffbb"}, |
| 93 | {fillColor: "#bbbbff"}, {fillColor: "#ddb000"}, {fillColor: "#b0dd00"}, {fillColor: "#e2bbff"}, {fillColor: "#ffbbe3"}, |
| 94 | {fillColor: "#ff7777"}, {fillColor: "#ff9900"}, {fillColor: "#83dd00"}, {fillColor: "#77e3ff"}, {fillColor: "#778fff"}, |
| 95 | {fillColor: "#c877ff"}, {fillColor: "#ff77ab"}, {fillColor: "#ff6600"}, {fillColor: "#aa8800"}, {fillColor: "#77c7ff"}, |
| 96 | {fillColor: "#ad77ff"}, {fillColor: "#ff77ff"}, {fillColor: "#dd0083"}, {fillColor: "#777700"}, {fillColor: "#00aa00"}, |
| 97 | {fillColor: "#0088aa"}, {fillColor: "#8400dd"}, {fillColor: "#aa0088"}, {fillColor: "#dd0000"}, {fillColor: "#772e00"} |
| 98 | ]; |
| 99 | |
| 100 | // 图表配置对象 |
| 101 | var sets = this.setting; |
| 102 | |
| 103 | // 背景框,默认不启用 |
| 104 | if (sets.useBackground) { |
| 105 | this.shapes.push(ShapeFactory.Background(this.shapeFactory, this.chartBox, sets)); |
| 106 | } |
| 107 | |
| 108 | // 数据值数组 |
| 109 | var fv = this.dataValues; |
| 110 | if (fv.length < 1) { |
| 111 | return; |
| 112 | } // 没有数据 |
| 113 | |
| 114 | // 值域范围 |
| 115 | var codomain = this.DVBCodomain; |
| 116 | // 值域范围检测 |
| 117 | for (let i = 0; i < fv.length; i++) { |
| 118 | if (fv[i] < codomain[0] || fv[i] > codomain[1]) { |
| 119 | return; |
| 120 | } |
| 121 | } |
| 122 | |
| 123 | // 值的绝对值总和 |
| 124 | var valueSum = 0; |
| 125 | for (let i = 0; i < fv.length; i++) { |
| 126 | valueSum += Math.abs(fv[i]); |
| 127 | } |
| 128 | |
| 129 | // 重要步骤:定义图表 FeatureThemeRing 数据视图框中单位值的含义,单位值:每度代表的数值 |
| 130 | this.DVBUnitValue = 360 / valueSum; |
| 131 | var uv = this.DVBUnitValue; |
| 132 | |
| 133 | var dvbCenter = this.DVBCenterPoint; // 数据视图框中心作为扇心 |
| 134 | |
| 135 | var startAngle = 0; // 扇形起始边角度 |
| 136 | var endAngle = 0; // 扇形终止边角度 |
| 137 | var startAngleTmp = startAngle; // 扇形临时起始边角度 |
| 138 | // 扇形外环(自适应)半径 |
| 139 | var r = this.DVBHeight < this.DVBWidth ? this.DVBHeight / 2 : this.DVBWidth / 2; |
| 140 | |
| 141 | // 扇形内环(自适应)半径 |
nothing calls this directly
no test coverage detected