|  | <!DOCTYPE html> | 
|  | <!-- | 
|  | Licensed to the Apache Software Foundation (ASF) under one | 
|  | or more contributor license agreements.  See the NOTICE file | 
|  | distributed with this work for additional information | 
|  | regarding copyright ownership.  The ASF licenses this file | 
|  | to you under the Apache License, Version 2.0 (the | 
|  | "License"); you may not use this file except in compliance | 
|  | with the License.  You may obtain a copy of the License at | 
|  |  | 
|  | http://www.apache.org/licenses/LICENSE-2.0 | 
|  |  | 
|  | Unless required by applicable law or agreed to in writing, | 
|  | software distributed under the License is distributed on an | 
|  | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
|  | KIND, either express or implied.  See the License for the | 
|  | specific language governing permissions and limitations | 
|  | under the License. | 
|  | --> | 
|  |  | 
|  |  | 
|  | <html> | 
|  | <head> | 
|  | <meta charset="utf-8"> | 
|  | <meta name="viewport" content="width=device-width, initial-scale=1" /> | 
|  | <script src="lib/simpleRequire.js"></script> | 
|  | <script src="lib/config.js"></script> | 
|  | <script src="lib/jquery.min.js"></script> | 
|  | <script src="lib/facePrint.js"></script> | 
|  | <script src="lib/testHelper.js"></script> | 
|  | <!-- <script src="lib/canteen.js"></script> --> | 
|  | <link rel="stylesheet" href="lib/reset.css" /> | 
|  | <style> | 
|  | .test-title-inner { | 
|  | text-align: center; | 
|  | } | 
|  | </style> | 
|  | </head> | 
|  | <body> | 
|  |  | 
|  | <div id="main0"></div> | 
|  |  | 
|  | <script> | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  | var option; | 
|  |  | 
|  | var colorList = ['#dc67ce', '#7ddc67', '#8067dc', '#dc6967', '#dcd267', '#67b7dc']; | 
|  | // cornerRadius can be an array [innerCornerRadius, outerCornerRadius] | 
|  | var outerCornerRadius = 5; | 
|  | var innerCornerRadius = 5; | 
|  | var usePercent = false; | 
|  | var isCircular = false; | 
|  | var isRounderOnEmphasis = false; | 
|  | var roseType = 'area'; | 
|  | var randomTimer; | 
|  | var data = [ | 
|  | { | 
|  | name: "America", | 
|  | value: 260 | 
|  | }, | 
|  | { | 
|  | name: "Zambia", | 
|  | value: 230 | 
|  | }, | 
|  | { | 
|  | name: "Ireland", | 
|  | value: 200 | 
|  | }, | 
|  | { | 
|  | name: "Germany", | 
|  | value: 165 | 
|  | }, | 
|  | { | 
|  | name: "Australia", | 
|  | value: 139 | 
|  | }, | 
|  | { | 
|  | name: "Japan", | 
|  | value: 128 | 
|  | } | 
|  | ]; | 
|  |  | 
|  | option = { | 
|  | color: colorList, | 
|  | title: { | 
|  | text: getTitle() | 
|  | }, | 
|  | tooltip: {}, | 
|  | legend: { | 
|  | bottom: 0 | 
|  | }, | 
|  | series: { | 
|  | type: 'pie', | 
|  | roseType: roseType, | 
|  | selectedMode: 'single', | 
|  | selectedOffset: 30, | 
|  | label: { | 
|  | formatter: '{b} {c}({d}%)' | 
|  | }, | 
|  | itemStyle: { | 
|  | borderRadius: getCornerRadius(), | 
|  | }, | 
|  | // itemStyle: { | 
|  | //     borderColor: '#fff', | 
|  | //     borderWidth: 5 | 
|  | // }, | 
|  | data: echarts.util.clone(data) | 
|  | } | 
|  | }; | 
|  |  | 
|  | function getTitle() { | 
|  | return 'cornerRadius [' | 
|  | + innerCornerRadius + (usePercent ? '%' : '') | 
|  | + ', ' | 
|  | + outerCornerRadius + (usePercent ? '%' : '') | 
|  | + ']'; | 
|  | } | 
|  |  | 
|  | function getCornerRadius() { | 
|  | return [ | 
|  | innerCornerRadius + (usePercent ? '%' : ''), | 
|  | outerCornerRadius + (usePercent ? '%' : '') | 
|  | ]; | 
|  | } | 
|  |  | 
|  | function getEmphasisCornerRadius() { | 
|  | const cornerRadius = getCornerRadius(); | 
|  | if (!isRounderOnEmphasis) { | 
|  | return cornerRadius; | 
|  | } | 
|  | const emphasisCornerRadius = [ | 
|  | parseInt(cornerRadius[0], 10) * 2, | 
|  | parseInt(cornerRadius[1], 10) * 2 | 
|  | ]; | 
|  | if (usePercent) { | 
|  | emphasisCornerRadius[0] = emphasisCornerRadius[0] + '%'; | 
|  | emphasisCornerRadius[1] = emphasisCornerRadius[1] + '%'; | 
|  | } | 
|  | return emphasisCornerRadius; | 
|  | } | 
|  |  | 
|  | var chart = testHelper.create(echarts, 'main0', { | 
|  | title: [ | 
|  | 'Test Pie with **cornerRadius**', | 
|  | '**cornerRadius** can be a number | string | number array | string array' | 
|  | ], | 
|  | option: option, | 
|  | buttons: [ | 
|  | { | 
|  | text: 'increase innerCornerRadius', | 
|  | onclick: function () { | 
|  | innerCornerRadius += 5; | 
|  | chart.setOption({ | 
|  | title: { | 
|  | text: getTitle() | 
|  | }, | 
|  | series: [{ | 
|  | itemStyle: { borderRadius: getCornerRadius() }, | 
|  | emphasis: { | 
|  | itemStyle: { borderRadius: getEmphasisCornerRadius() } | 
|  | } | 
|  | }] | 
|  | }); | 
|  | } | 
|  | }, | 
|  | { | 
|  | text: 'decrease innerCornerRadius', | 
|  | onclick: function () { | 
|  | innerCornerRadius -= 5; | 
|  | if (innerCornerRadius < 0) { | 
|  | innerCornerRadius = 0; | 
|  | } | 
|  | chart.setOption({ | 
|  | title: { | 
|  | text: getTitle() | 
|  | }, | 
|  | series: [{ | 
|  | itemStyle: { borderRadius: getCornerRadius() }, | 
|  | emphasis: { | 
|  | itemStyle: { borderRadius: getEmphasisCornerRadius() } | 
|  | } | 
|  | }] | 
|  | }); | 
|  | } | 
|  | }, | 
|  | { | 
|  | text: 'increase outerCornerRadius', | 
|  | onclick: function () { | 
|  | outerCornerRadius += 5; | 
|  | chart.setOption({ | 
|  | title: { | 
|  | text: getTitle() | 
|  | }, | 
|  | series: [{ | 
|  | itemStyle: { borderRadius: getCornerRadius() }, | 
|  | emphasis: { | 
|  | itemStyle: { borderRadius: getEmphasisCornerRadius() } | 
|  | } | 
|  | }] | 
|  | }); | 
|  | } | 
|  | }, | 
|  | { | 
|  | text: 'decrease outerCornerRadius', | 
|  | onclick: function () { | 
|  | outerCornerRadius -= 5; | 
|  | if (outerCornerRadius < 0) { | 
|  | outerCornerRadius = 0; | 
|  | } | 
|  | chart.setOption({ | 
|  | title: { | 
|  | text: getTitle() | 
|  | }, | 
|  | series: [{ | 
|  | itemStyle: { borderRadius: getCornerRadius() }, | 
|  | emphasis: { | 
|  | itemStyle: { borderRadius: getEmphasisCornerRadius() } | 
|  | } | 
|  | }] | 
|  | }); | 
|  | } | 
|  | }, | 
|  | { | 
|  | text: 'use percent', | 
|  | onclick: function () { | 
|  | usePercent = !usePercent; | 
|  | chart.setOption({ | 
|  | title: { | 
|  | text: getTitle() | 
|  | }, | 
|  | series: [{ | 
|  | itemStyle: { borderRadius: getCornerRadius() }, | 
|  | emphasis: { | 
|  | itemStyle: { borderRadius: getEmphasisCornerRadius() } | 
|  | } | 
|  | }] | 
|  | }); | 
|  | } | 
|  | }, | 
|  | { | 
|  | text: 'random cornerRadius', | 
|  | onclick: function () { | 
|  | // clearInterval(randomTimer); | 
|  | // if (randomTimer) { | 
|  | //     randomTimer = null; | 
|  | // } | 
|  | // else { | 
|  | //     randomTimer = setInterval(function () { | 
|  | outerCornerRadius = ~~(Math.random() * 50); | 
|  | innerCornerRadius = ~~(Math.random() * 50); | 
|  | chart.setOption({ | 
|  | title: { | 
|  | text: getTitle() | 
|  | }, | 
|  | series: [{ | 
|  | itemStyle: { borderRadius: getCornerRadius() }, | 
|  | emphasis: { | 
|  | itemStyle: { borderRadius: getEmphasisCornerRadius() } | 
|  | } | 
|  | }] | 
|  | }); | 
|  | //     }, 2e3); | 
|  | // } | 
|  | } | 
|  | }, | 
|  | { | 
|  | text: 'roseType', | 
|  | onclick: function () { | 
|  | roseType = roseType ? false : 'area'; | 
|  | chart.setOption({ | 
|  | series: [{ | 
|  | roseType: roseType | 
|  | }] | 
|  | }); | 
|  | } | 
|  | }, | 
|  | { | 
|  | text: 'circular', | 
|  | onclick: function () { | 
|  | var innerRadius; | 
|  | if (!isCircular) { | 
|  | innerRadius = ~~(Math.random() * 70); | 
|  | } | 
|  | chart.setOption({ | 
|  | series: [{ | 
|  | radius: isCircular ? [0, '75%'] : [innerRadius + '%', '75%'] | 
|  | }] | 
|  | }); | 
|  | this.innerText = 'circular' + (innerRadius ? ' ' + innerRadius + '%' : ''); | 
|  | isCircular = !isCircular; | 
|  | } | 
|  | }, | 
|  | { | 
|  | text: 'random data', | 
|  | onclick: function () { | 
|  | var randomData = echarts.util.clone(data); | 
|  | echarts.util.each(randomData, function (e) { | 
|  | e.value = ~~(Math.random() * 1e3); | 
|  | }); | 
|  | chart.setOption({ | 
|  | series: [{ | 
|  | data: randomData | 
|  | }] | 
|  | }); | 
|  | } | 
|  | }, | 
|  | { | 
|  | text: 'rounder on emphasis', | 
|  | onclick: function () { | 
|  | isRounderOnEmphasis = !isRounderOnEmphasis; | 
|  | chart.setOption({ | 
|  | series: [{ | 
|  | itemStyle: { borderRadius: getCornerRadius() }, | 
|  | emphasis: { | 
|  | itemStyle: { borderRadius: getEmphasisCornerRadius() } | 
|  | } | 
|  | }] | 
|  | }); | 
|  | } | 
|  | }, | 
|  | { | 
|  | text: 'set radius for all corners', | 
|  | onclick: function () { | 
|  | isCircular = true; | 
|  | var val = [5, 15, 0, 20]; | 
|  | chart.setOption({ | 
|  | title: { | 
|  | text: 'cornerRadius [' + val + ']' | 
|  | }, | 
|  | series: [{ | 
|  | radius: ['40%', '75%'], | 
|  | itemStyle: { borderRadius: val }, | 
|  | emphasis: { | 
|  | itemStyle: { borderRadius: [20, 5, 10, 30] } | 
|  | } | 
|  | }] | 
|  | }); | 
|  | } | 
|  | }, | 
|  | { | 
|  | text: 'reset', | 
|  | onclick: function () { | 
|  | outerCornerRadius = 5; | 
|  | innerCornerRadius = 5; | 
|  | usePercent = false; | 
|  | isCircular = false; | 
|  | roseType = 'area'; | 
|  | isRounderOnEmphasis = false; | 
|  | chart.setOption({ | 
|  | title: { | 
|  | text: getTitle() | 
|  | }, | 
|  | series: [{ | 
|  | itemStyle: { borderRadius: getCornerRadius() }, | 
|  | emphasis: { | 
|  | itemStyle: { borderRadius: getEmphasisCornerRadius() } | 
|  | }, | 
|  | roseType: roseType, | 
|  | radius: [0, '75%'], | 
|  | data: data | 
|  | }] | 
|  | }); | 
|  | } | 
|  | } | 
|  | ] | 
|  | }); | 
|  | }); | 
|  | </script> | 
|  |  | 
|  | </body> | 
|  | </html> | 
|  |  |