From ead262b80b656fff2035e0ded4e7427469943c54 Mon Sep 17 00:00:00 2001 From: jdmedlock Date: Sat, 2 Mar 2019 17:56:46 -0600 Subject: [PATCH 1/2] Feature: Add String Art application specification Add String Art application specification Resolves: N/a See also: N/a --- Projects/String-Art.md | 45 ++++++++++++++++++++++++++++++++++++++++++ README.md | 1 + 2 files changed, 46 insertions(+) create mode 100644 Projects/String-Art.md diff --git a/Projects/String-Art.md b/Projects/String-Art.md new file mode 100644 index 00000000..b7a83d33 --- /dev/null +++ b/Projects/String-Art.md @@ -0,0 +1,45 @@ +# Application Name + +The purpose of String Art is to provide the developer with practice creating a +simple animated graphic, using geometry in the animation algorithm, and +creating something that's visually pleasant to watch. + +String Art draws a single multicolored line which smoothly moves until one +end touches a side of the enclosing window. At the point it touches a "bounce" +effect is applied to change it's direction. + +A ripple effect is created by only retaining 10-20 images of the line as it +moves. Older images are progressively faded until they disappear. + +Animation libraries are not allowed. Use only Vanilla HTML/CSS/JavaScript. + +## User Stories + +- [ ] Start by drawing a multicolored line at a random position within the +boundary of it's enclosing window. +- [ ] Each 20ms draw a new copy of the line at a new position based on a +trajectory - the incremental distance from the previous line based on the +endpoints. +- [ ] When either endpoint of the line touches the boundary of the enclosing +window change it's direction and randomly alter its angle. +- [ ] Progressively fade the intensity of old lines so that only the most +recent 10-20 lines are visible to create the sense of movement or "ripple". + +## Bonus features + +- [ ] Allow the user to specify the length of the line and it's velocity +- [ ] Allow the user to specify the multiple lines within the window, all +moving along different trajectories and velocities + +## Useful links and resources + +- [Using Multistep Animations & Transitions](https://css-tricks.com/using-multi-step-animations-transitions/) +- [Animation Basics](https://www.khanacademy.org/computing/computer-programming/programming/animation-basics/a/what-are-animations) + +## Example projects + +This project is very close, but has a small enclosing window and is monchromatic. +[Daniel Cortes](https://codepen.io/dgca/pen/dpxreO) + +This project is similar, but contains multiple lines and is monochromatic +[Brendan Mcintosh](https://codepen.io/BrendanMcintosh/pen/eBvRpy) diff --git a/README.md b/README.md index 15418aa5..51ef8471 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ Each project has the following **features**: | [Kudos Slackbot](./Projects/Kudos-Slackbot.md) | | [Markdown Table Generator](./Projects/Markdown-Table-Generator.md) | | [Pomodoro Clock](./Projects/Pomodoro-Clock.md) | +| [String Art](./Projects/String-Art.md) | ### Contribution From 9d55cc4dce42a08633aa86f0692d020ac27edddf Mon Sep 17 00:00:00 2001 From: jdmedlock Date: Sun, 3 Mar 2019 14:30:29 -0600 Subject: [PATCH 2/2] Refactor: Implement changes requested during PR review Implement changes requested during PR review - Add application name - Change user stories to conform to project standards Resolves: N/a See also: N/a --- Projects/String-Art.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Projects/String-Art.md b/Projects/String-Art.md index b7a83d33..88ed126b 100644 --- a/Projects/String-Art.md +++ b/Projects/String-Art.md @@ -1,4 +1,4 @@ -# Application Name +# StringArt The purpose of String Art is to provide the developer with practice creating a simple animated graphic, using geometry in the animation algorithm, and @@ -27,8 +27,8 @@ recent 10-20 lines are visible to create the sense of movement or "ripple". ## Bonus features -- [ ] Allow the user to specify the length of the line and it's velocity -- [ ] Allow the user to specify the multiple lines within the window, all +- [ ] User can specify the length of the line and it's velocity +- [ ] User can specify the multiple lines within the window, all moving along different trajectories and velocities ## Useful links and resources