https://github.com/aminehabchi/jaikin
implement Chaikin's algorithm in java
https://github.com/aminehabchi/jaikin
chaikin java piscine-java raid
Last synced: 5 months ago
JSON representation
implement Chaikin's algorithm in java
- Host: GitHub
- URL: https://github.com/aminehabchi/jaikin
- Owner: aminehabchi
- Created: 2025-08-23T13:51:34.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-08-24T14:01:43.000Z (7 months ago)
- Last Synced: 2025-08-24T19:23:31.567Z (7 months ago)
- Topics: chaikin, java, piscine-java, raid
- Language: Java
- Homepage:
- Size: 71.3 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Jaikin
A Java Swing application that demonstrates the **Chaikin curve smoothing algorithm** through interactive visualization.
## About
The Chaikin algorithm is a curve subdivision technique that transforms angular polygons into smooth curves by iteratively applying corner-cutting operations. This project provides a visual demonstration where users can create control points and watch the smoothing process in real-time.
## Demo

*Click to add points, press ENTER to start smoothing animation*
## Features
- 🎯 **Interactive Point Placement** - Click anywhere to add control points
- 🎬 **Real-time Animation** - Watch 7 iterations of smoothing
- 🎨 **Modern Dark UI** - Professional styling with glow effects
- ⌨️ **Simple Controls** - Mouse and keyboard interaction
- 📊 **Live Statistics** - Track iterations and point count
## How to Run
### Using Makefile
```bash
make run
```
### Controls
- **Click**: Add control point
- **ENTER**: Start animation (requires 3+ points)
- **SPACE**: Clear canvas
- **ESC**: Exit
## Project Structure
```
├── helpers/
│ ├── Chaikin.java # Core algorithm implementation
│ └── Drawing.java # Rendering and visual effects
├── Jaikin.java # Main application and UI logic
├── Makefile # Build automation
└── README.md # This file
```
## Requirements
- Java 8 or higher
- Any operating system with Java support
---
*Educational tool for understanding geometric algorithms and curve subdivision techniques.*