Skip to content

feat(brush): add circle brush support (resolves #21738) - #21760

Open
vinay-kumar-0 wants to merge 1 commit into
apache:masterfrom
vinay-kumar-0:master
Open

vinay-kumar-0 wants to merge 1 commit into
apache:masterfrom
vinay-kumar-0:master

Conversation

@vinay-kumar-0

Copy link
Copy Markdown

Brief Information

This pull request is in the type of:

  • bug fixing
  • new feature
  • others

What does this PR do?

Adds a new 'circle' brush type to the toolbox, allowing users to select data points within a circular area.

Fixed issues

#21738

Details

Before: What was the problem?

The brush component previously only supported rectangular (rect) and polygonal (polygon) selections. There was no native tool for selecting data points using a circular radius, which limited proximity-based data analysis and selection.

Screenshot 2026-09-19 222753

After: How does it behave after the fixing?

Users can now activate the 'circle' brush from the toolbox.

Implemented Euclidean squared distance hit-testing in selector.ts for points, and rectangle-circle collision detection for bounding boxes.

Registered the circle coordinate convertors in BrushTargetManager.ts.

Added the necessary SVG path and UI integration in BrushController.ts and Brush.ts.

Screenshot 2026-09-19 235044

Document Info

One of the following should be checked.

  • This PR doesn't relate to document changes
  • The document should be updated later
  • The document changes have been made in apache/echarts-doc#xxx

Misc

Security Checking

  • This PR uses security-sensitive Web APIs.

ZRender Changes

  • This PR depends on ZRender changes (ecomfe/zrender#xxx).

Related test cases or examples to use the new APIs

Tested locally using test/brush.html by verifying data point selection, sum calculations in the sidebar, and toolbar integration.

Merging options

  • Please squash the commits into a single one when merging.

Other information

@echarts-bot

echarts-bot Bot commented Sep 19, 2026

Copy link
Copy Markdown

Thanks for your contribution!
The community will review it ASAP. In the meanwhile, please checkout the coding standard and Wiki about How to make a pull request.

Please DO NOT commit the files in dist, i18n, and ssr/client/dist folders in a non-release pull request. These folders are for release use only.

Document changes are required in this PR. Please also make a PR to apache/echarts-doc for document changes and update the issue id in the PR description. When the doc PR is merged, the maintainers will remove the PR: awaiting doc label.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant