| <!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="ut/lib/canteen.js"></script> --> |
| <link rel="stylesheet" href="lib/reset.css" /> |
| </head> |
| <body> |
| <style> |
| </style> |
| |
| |
| |
| <div id="main0"></div> |
| <div id="main1"></div> |
| |
| |
| |
| |
| <script> |
| var shapesMade; |
| var WeirdTriangle; |
| var Rect2; |
| |
| function makeShapes(echarts) { |
| if (shapesMade) { |
| return; |
| } |
| shapesMade = true; |
| |
| WeirdTriangle = echarts.graphic.extendShape({ |
| type: 'anyway', |
| |
| shape: { |
| a: 0, |
| b: 100, |
| c: 200 |
| }, |
| |
| buildPath: function (ctx, shape) { |
| ctx.moveTo(shape.a, shape.b); |
| ctx.lineTo(shape.b, shape.c); |
| ctx.lineTo(shape.c, shape.a); |
| ctx.closePath(); |
| } |
| }); |
| |
| Rect2 = echarts.graphic.extendShape({ |
| type: 'anyway2', |
| |
| shape: { |
| x: 0, |
| y: 0, |
| width: 0, |
| height: 0 |
| }, |
| |
| buildPath: function (ctx, shape) { |
| ctx.moveTo(shape.x, shape.y); |
| ctx.lineTo(shape.x + shape.width, shape.y); |
| ctx.lineTo(shape.x, shape.y + shape.height); |
| ctx.lineTo(shape.x + shape.width, shape.y + shape.height); |
| ctx.closePath(); |
| } |
| }); |
| |
| echarts.graphic.registerShape('weirdTriangle', WeirdTriangle); |
| echarts.graphic.registerShape('rect', Rect2); // Overwrite rect. |
| echarts.graphic.registerShape('group', WeirdTriangle); // Should not make sense. |
| |
| var MyWeirdGot = echarts.graphic.getShapeClass('weirdTriangle'); |
| if (MyWeirdGot !== WeirdTriangle) { |
| throw new Error('echarts.getShapeClass error'); |
| } |
| } |
| </script> |
| |
| |
| |
| |
| <script> |
| require(['echarts'/*, 'map/js/china' */], function (echarts) { |
| makeShapes(echarts); |
| var option; |
| |
| option = { |
| xAxis: {}, |
| yAxis: {}, |
| series: { |
| type: 'custom', |
| renderItem: function (params, api) { |
| return { |
| type: 'group', |
| children: [{ |
| type: 'weirdTriangle', |
| shape: { |
| a: api.value(0), |
| b: api.value(1), |
| c: api.value(2) |
| }, |
| style: { |
| fill: 'red', |
| stroke: 'green', |
| lineWidth: 2 |
| } |
| }, { |
| type: 'rect', |
| shape: { |
| x: api.value(3), |
| y: api.value(4), |
| width: api.value(5), |
| height: api.value(6) |
| }, |
| style: { |
| fill: 'red', |
| stroke: 'green', |
| lineWidth: 2 |
| } |
| }] |
| } |
| }, |
| data: [ |
| [55, 66, 77, 388, 99, 101, 111], |
| [111, 222, 333, 500, 200, 50, 100] |
| ] |
| } |
| }; |
| |
| var chart = testHelper.create(echarts, 'main0', { |
| title: [ |
| 'Custom shape in custom series.', |
| 'Two triangles should be displayed (fill: red, stroke: green)', |
| 'Two sandglass should be displayed (fill: red, stroke: green)' |
| ], |
| option: option |
| // height: 300, |
| // buttons: [{text: 'btn-txt', onclick: function () {}}], |
| // recordCanvas: true, |
| }); |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'/*, 'map/js/china' */], function (echarts) { |
| makeShapes(echarts); |
| var option; |
| |
| option = { |
| graphic: { |
| type: 'group', |
| children: [{ |
| type: 'weirdTriangle', |
| shape: { |
| a: 111, |
| b: 222, |
| c: 333 |
| }, |
| style: { |
| fill: 'red', |
| stroke: 'green', |
| lineWidth: 2 |
| } |
| }, { |
| type: 'rect', |
| shape: { |
| x: 500, |
| y: 200, |
| width: 50, |
| height: 100 |
| }, |
| style: { |
| fill: 'red', |
| stroke: 'green', |
| lineWidth: 2 |
| } |
| }] |
| } |
| }; |
| |
| var chart = testHelper.create(echarts, 'main1', { |
| title: [ |
| 'Custom shape in graphic component.', |
| 'One triangles should be displayed (fill: red, stroke: green)', |
| 'One sandglass should be displayed (fill: red, stroke: green)' |
| ], |
| option: option |
| // height: 300, |
| // buttons: [{text: 'btn-txt', onclick: function () {}}], |
| // recordCanvas: true, |
| }); |
| }); |
| </script> |
| |
| |
| |
| |
| </body> |
| </html> |
| |