diff --git a/server/src/img.rs b/server/src/img.rs index c9c78046..383e1f7f 100644 --- a/server/src/img.rs +++ b/server/src/img.rs @@ -267,13 +267,24 @@ pub fn smiley(id: Uuid) -> Result { let l_dist = Normal::new(50.0, 10.0); let s_dist = Normal::new(50.0, 20.0); - let eyes = [ - ("50 800, 300 550, 550 800", 1), - ("50 550, 300 800, 550 550", 1), + let eyes_left = [ + ("M50,800 L300,550 L550,800", 1), // ^ + ("M50,550 L300,800 L550,550", 1), // v + ("M50,550 L300,800 L550,550", 1), // v ]; - let shape_dist = WeightedIndex::new(eyes.iter().map(|v| v.1))?; + let eye_left_dist = WeightedIndex::new(eyes_left.iter().map(|v| v.1))?; + let eyes_right = [ + ("M1550,800 L1800,550 L2050,800", 1), // ^ + ("M1550,550 L1800,800 L2050,550", 1), // v + ("M1550,550 L1800,800 L2050,550", 1), // v + ]; + let eye_right_dist= WeightedIndex::new(eyes_right.iter().map(|v| v.1))?; + let mouths = [ + ("M550,1800 L1550,1800", 1), // ^ + ]; + let mouth_dist = WeightedIndex::new(mouths.iter().map(|v| v.1))?; // basic layout is 2000x2000 box w/ 50 padding // 2:1 for each x,y @@ -290,25 +301,25 @@ pub fn smiley(id: Uuid) -> Result { // x = 50 + 500 + xoffset // y = 50 + 750 + yoffset - write!(&mut svg, "")?; + write!(&mut svg, "")?; - let left_eye_path = "50 800, 300 550, 550 800"; + let left_eye_path = eyes_left[eye_left_dist.sample(&mut rng)].0; // left eye write!(&mut svg, - "", + "", left_eye_path)?; - let right_eye_path = "1550 800, 1800 550, 2050 800"; + let right_eye_path = eyes_right[eye_right_dist.sample(&mut rng)].0; // right eye write!(&mut svg, - "", + "", right_eye_path)?; - let mouth_path = "550 1550, 1550 1550"; + let mouth_path = mouths[mouth_dist.sample(&mut rng)].0; // mouth write!(&mut svg, - "", + "", mouth_path)?; write!(&mut svg, "")?;