Rename rotation to sonar

This commit is contained in:
Nicolas 2022-04-15 07:58:08 +02:00
parent 96390b09b9
commit f18d09b5c4
5 changed files with 11 additions and 10 deletions

View File

@ -15,4 +15,4 @@ Note that some parameters like `--color` can be specified multiple times with di
## Showcase
[![Circle](doc/circle.gif)]()
[![Rhombus](doc/rhombus.gif)]()
[![Rotation](doc/rotation.gif)]()
[![Rotation](doc/sonar.gif)]()

View File

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 223 KiB

View File

@ -1,5 +1,5 @@
pub mod circle;
pub mod rotation;
pub mod sonar;
pub mod rhombus;
use crate::vec::Vector;

View File

@ -6,11 +6,12 @@ const TWO_PI: f32 = PI * 2.0;
const THICKNESS: f32 = TWO_PI * 0.1;
const FULL_ROTATION: f32 = TWO_PI + THICKNESS * 2.0;
pub struct RotationAnimation {
/// A sonar like animation.
pub struct SonarAnimation {
center: Vector
}
impl RotationAnimation {
impl SonarAnimation {
pub fn new(size: Vector) -> Self {
Self {
center: size.center()
@ -18,7 +19,7 @@ impl RotationAnimation {
}
}
impl Animation for RotationAnimation {
impl Animation for SonarAnimation {
fn sample(&self, step: f32, pos: Vector) -> f32 {
let angle = FULL_ROTATION * step - PI - THICKNESS;
let pos_angle = (pos - self.center).angle();
@ -33,7 +34,7 @@ mod test {
#[test]
fn sample() {
let anim = RotationAnimation::new(Vector::new(30.0, 10.0));
let anim = SonarAnimation::new(Vector::new(30.0, 10.0));
let sample_1 = anim.sample(0.3, Vector::new(16.0, 3.0));
let sample_2 = anim.sample(0.7, Vector::new(22.0, 2.0));

View File

@ -7,7 +7,7 @@ use rand::rngs::OsRng;
use crate::animation::Animation;
use crate::animation::circle::CircleAnimation;
use crate::animation::rhombus::RhombusAnimation;
use crate::animation::rotation::RotationAnimation;
use crate::animation::sonar::SonarAnimation;
use crate::char::SimpleCharSampler;
use crate::choose::{Chooser, Collection};
use crate::color::{ColorSampler, SimpleColorSampler};
@ -53,7 +53,7 @@ macro_rules! options {
options!(AnimationType {
Circle,
Rhombus,
Rotation,
Sonar,
});
options!(ColorType {
@ -170,7 +170,7 @@ fn create_animation(animation: AnimationType, size: Vector) -> Box<dyn Animation
match animation {
AnimationType::Circle => Box::new(CircleAnimation::new(size)),
AnimationType::Rhombus => Box::new(RhombusAnimation::new(size)),
AnimationType::Rotation => Box::new(RotationAnimation::new(size)),
AnimationType::Sonar => Box::new(SonarAnimation::new(size)),
}
}
@ -262,7 +262,7 @@ mod test {
create_animation(AnimationType::Circle, size);
create_animation(AnimationType::Rhombus, size);
create_animation(AnimationType::Rotation, size);
create_animation(AnimationType::Sonar, size);
}
#[test]