Concept:
I came across “The Snow Queen” fairy tale a few days ago when I was browsing through the books in my Kindle, and this randomly crossed my mind when I was brainstorming for this assignment. Using the arrival, wander, etc. codes that we learned in class, I thought it’d be fun to show the scene of Kay’s heart being pierced and frozen from the Snow Queen’s snowflake pieces.
Process/Highlight:
I used this image for the heart, and I basically used similar structure of wander and arrival from class except I had the diamonds (“vehicles”) continuously moving even after arriving at the heart (“target’). A particular highlight would be the “separation” function I used so that the diamonds won’t be colliding into each other, which took some time for me to figure out how to use.
Here’s the code snippet:
// separation separate(vehicles) { let desiredSeparation = 25; // Adjust as needed let steer = createVector(0, 0); let count = 0; for (let other of vehicles) { let d = p5.Vector.dist(this.position, other.position); if (other !== this && d < desiredSeparation) { let diff = p5.Vector.sub(this.position, other.position); diff.normalize(); diff.div(d); // Weight by distance steer.add(diff); count++; } } if (count > 0) { steer.div(count); } if (steer.mag() > 0) { steer.setMag(this.maxSpeed); steer.sub(this.velocity); steer.limit(this.maxForce); } return steer; }
And here’s the final sketch:
Reflection:
For some reason I couldn’t move the diamonds to be drawn at the front of the heart image for this sketch despite trying to rearrange the order of them, so that’s something I’d like to figure out and improve on next time!