Under development.
OpenTK WPF Chart is an open-source project that provides high-performance data visualization controls for WPF applications using OpenTK (OpenGL). By combining WPF's native controls with the rendering power of OpenGL, this project aims to deliver an extensible, performant, and feature-rich solution for data visualization. Current work focuses on line charts and historical trend charts. It perform rendering by OpenGL which is hosted on control OpenTKWPFHost. Following's a simple sample of historical chart.
- Employs native WPF implementation for axes and grid rendering, ensuring seamless integration with WPF projects.
- Uses OpenGL for rendering line charts, significantly improving performance, especially in high-data scenarios.
(Insert an image of the basic line chart here)
- Supports both 2D line charts and 3D planar chart visualization.
- Line thickness in the 2D chart can be dynamically adjusted.
(Insert an image showcasing a 2D line chart with dynamic thickness)
- Implements efficient collision detection using quadtree and hash grid techniques.
- Enables tooltips when the mouse hovers over specific points on the chart, enhancing interaction.
(Insert an image showing tooltip interaction on a chart point)
- Achieves high-performance real-time historical trend charts using a circular buffer data structure with optimized shaders.
- Perfectly suited for scenarios requiring real-time data visualization.
(Insert an image of a real-time historical trend chart)
- Dynamically adjusts the Y-axis height using shaders, significantly boosting performance.
- Unlike traditional libraries (e.g., DevExpress), this solution prevents lag when handling large datasets.
(Insert a comparison image between this implementation and a laggy DevExpress chart on large datasets)
- Fully customizable algorithms for axis labels and grid spacing.
- Implements dynamic grid movement effects: when dragging the chart, the grid moves within a certain range and resets after exceeding the range, creating a unique visual effect.
While the project already offers robust functionality, the following features are planned for future development:
- Complete 3D Chart Support
- Extend the current 3D planar chart to fully support 3D visualizations.
(Insert an example image of a 3D chart concept)
-
Scatter Plot Support
- Provide high-performance scatter plot rendering and interaction.
-
Support for Custom Object Rendering
- Allow rendering of various vector shapes (e.g., circles, rectangles, arrows) in the chart.
-
2D Chart z-axis Issue
- Resolve the ordering problem in 2D line charts (currently, lines may be incorrectly rendered on top or behind each other due to the lack of z-axis sorting).
(Insert an illustrative image showing the line ordering issue and the expected result)
-
Automatic Context Management
- Automatically manage OpenGL contexts to simplify developer workflows.
-
Multi-Model Comparison
- Support for comparison of multiple models within a single chart.
-
Advanced Features
- Expand the library with more chart types and performance optimizations.
OpenTK WPF Chart is well-suited for a wide range of applications, including:
- Real-Time Data Monitoring
Render real-time historical data efficiently and interactively.
(Insert an image showcasing real-time monitoring of live data)
-
Financial and Scientific Computation
Display precise line charts, trend data, or 3D charts for financial analysis or scientific result visualization. -
Industrial Automation
Visualize sensor data or production line statuses with high performance and customization.
Instructions coming soon...
The project is under active development, and contributions are welcome! Feel free to submit issues or pull requests to help improve the library.
Interested in contributing to the OpenTK WPF Chart project? We’d love to have you onboard! Follow these steps to get started:
- Fork this repository and clone it to your local environment.
- Create a feature branch and commit your changes.
- Submit a pull request and wait for a project maintainer to review.
- Project Homepage: GitHub - OpenTK WPF Chart
- Feel free to create issues or pull requests to help improve the project!
This project is licensed under the MIT License. You’re free to use, modify, and distribute it.