-
Notifications
You must be signed in to change notification settings - Fork 445
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* docs(jaikin): add the subject of the raid jaikin * docs(Jaikin): correct jainkin subject docs(jaikin): add jaikin audit * docs(jaikin): remove additional files * docs(jaikin): changing first two lines of the audit
- Loading branch information
1 parent
78606c8
commit f8031ae
Showing
2 changed files
with
86 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
## Implementation of Jaikin's Algorithm with Step-by-Step Animation | ||
|
||
### Objective | ||
|
||
The goal of this project is to implement Chaikin's algorithm and create a step-by-step animation of the process using a canvas. | ||
|
||
### Instructions | ||
|
||
Follow these instructions to create the Chaikin's algorithm step-by-step animation: | ||
|
||
1. Create a canvas where the user can draw one or more points. Each point should be represented by a small circle. | ||
|
||
2. Receive input from the mouse, allowing the user to place control points for Chaikin's algorithm using the left button. | ||
|
||
3. Display the selected points on the canvas as small circles surrounding each point. | ||
|
||
4. If the canvas has control points drawn on it, pressing the `Enter` key should initiate the animation. The animation should cycle through the steps of Chaikin's algorithm, proceeding until it reaches the 7th step. After completing the 7th step, the animation should restart. | ||
|
||
5. If the user presses `Enter` before any points have been drawn, nothing should happen. However, the user should still be able to draw points, and an optional message may be displayed to remind the user to draw points. | ||
|
||
6. If the canvas has only one control point, the program must display that point without cycling through the steps. | ||
|
||
7. If the canvas has only two control points, the program must draw a straight line between those two points. | ||
|
||
8. Pressing the `Escape` key should close the window. | ||
|
||
### Bonus Features | ||
|
||
Optionally, you may implement the following bonus features: | ||
|
||
1. Allow the user to clear the screen, enabling them to select new control points. | ||
|
||
2. Implement real-time dragging of the control points, so the user can adjust their position interactively. | ||
|
||
> Note: You are free to choose any library for handling windows, rendering, keyboard, and mouse events. | ||
For more information on Chaikin's algorithm, refer to [this resource](http://graphics.cs.ucdavis.edu/education/CAGDNotes/Chaikins-Algorithm/Chaikins-Algorithm.html). You can also view an example of how the application should work in this [video](https://youtu.be/PbB2eKnA2QI). Remember, the usage of Chaikin's algorithm is mandatory for this implementation. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
#### Functional | ||
|
||
- Try to run the program. | ||
|
||
- Does the program compile and run without any error or warning? | ||
|
||
- Set one or more control points by left-clicking on the canvas. | ||
|
||
- Confirm that the program allows you to mark these control points. | ||
|
||
- Check if the program draws a small circle around the control points for identification purposes. | ||
|
||
- Set three or more control points on the canvas and press `Enter`. | ||
|
||
- Observe whether Chaikin's algorithm starts the animation. | ||
|
||
- To exit the program, press the `Escape` key. | ||
|
||
- Ensure the program exits without any errors. | ||
|
||
- Start the program and set only one control point by left-clicking on the canvas. Then, press `Enter`. | ||
|
||
- Confirm that only the selected control point is visible, and nothing else changes. | ||
|
||
- Restart the program, set two control points by left-clicking on the canvas, and press `Enter`. | ||
|
||
- Check if only a straight line is drawn between the two control points. | ||
|
||
- Restart the program, set three or more control points by left-clicking on the canvas, and press `Enter`. | ||
|
||
- Confirm that the animation completes 7 steps before restarting. | ||
|
||
- Restart the program, set three or more control points by left-clicking on the canvas, and press `Enter`. Then, press `Escape` to exit the program. | ||
|
||
- Verify that the program exits without any errors. | ||
|
||
- Start the program and press `Enter` without selecting any points. | ||
|
||
- Check if the program continues without any errors. | ||
|
||
- After pressing `Enter` without selecting points, try placing points without needing to restart the program. | ||
|
||
#### Bonus Features | ||
|
||
- Check if a message is displayed when you press `Enter` without drawing any points, reminding you to add points. | ||
|
||
- Verify if you can clear the screen and add new control points without restarting the program. | ||
|
||
- Check if it's possible to drag the control points in real time and observe the generation of a new curve. |