wip
This commit is contained in:
parent
91501428ef
commit
d8bad68216
@ -267,8 +267,15 @@ pub fn smiley(id: Uuid) -> Result<Uuid, Error> {
|
|||||||
let l_dist = Normal::new(50.0, 10.0);
|
let l_dist = Normal::new(50.0, 10.0);
|
||||||
let s_dist = Normal::new(50.0, 20.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 shape_dist = WeightedIndex::new(eyes.iter().map(|v| v.1))?;
|
||||||
|
|
||||||
// basic layout is 2000x1000 box w/ 50 padding
|
|
||||||
|
|
||||||
|
// basic layout is 2000x2000 box w/ 50 padding
|
||||||
// 2:1 for each x,y
|
// 2:1 for each x,y
|
||||||
|
|
||||||
// left eye is top left
|
// left eye is top left
|
||||||
@ -283,60 +290,31 @@ pub fn smiley(id: Uuid) -> Result<Uuid, Error> {
|
|||||||
// x = 50 + 500 + xoffset
|
// x = 50 + 500 + xoffset
|
||||||
// y = 50 + 750 + yoffset
|
// y = 50 + 750 + yoffset
|
||||||
|
|
||||||
write!(&mut svg, "<svg xmlns='http://www.w3.org/2000/svg' version='1.1' viewBox='0 0 2100 1100' width='2000' height='2000' background=\"black\" ><g>")?;
|
write!(&mut svg, "<svg xmlns='http://www.w3.org/2000/svg' version='1.1' viewBox='0 0 2100 2100' width='2000' height='2000' background=\"black\" ><g>")?;
|
||||||
|
|
||||||
let n_points = rng.gen_range(3, 5);
|
let left_eye_path = "50 800, 300 550, 550 800";
|
||||||
let left_eye_path: String = std::iter::repeat(())
|
|
||||||
.map(|()| {
|
|
||||||
let x = 50 + (rng.gen_range(0, 5) * 100);
|
|
||||||
let y = 50 + (rng.gen_range(0, 5) * 50);
|
|
||||||
format!("{} {}", x, y)
|
|
||||||
})
|
|
||||||
.take(n_points)
|
|
||||||
.collect::<Vec<String>>()
|
|
||||||
.join(",");
|
|
||||||
|
|
||||||
// left eye
|
// left eye
|
||||||
write!(&mut svg,
|
write!(&mut svg,
|
||||||
"<polyline fill=\"none\" stroke=\"whitesmoke\" stroke-width=\"15px\" x=\"50\" y=\"50\" points=\"{:}\" />",
|
"<polyline fill=\"none\" stroke=\"whitesmoke\" stroke-width=\"30px\" x=\"50\" y=\"50\" points=\"{:}\" />",
|
||||||
left_eye_path)?;
|
left_eye_path)?;
|
||||||
|
|
||||||
let n_points = rng.gen_range(3, 5);
|
let right_eye_path = "1550 800, 1800 550, 2050 800";
|
||||||
let right_eye_path: String = std::iter::repeat(())
|
|
||||||
.map(|()| {
|
|
||||||
let x = 50 + 1500 + (rng.gen_range(0, 5) * 100);
|
|
||||||
let y = 50 + (rng.gen_range(0, 5) * 50);
|
|
||||||
format!("{} {}", x, y)
|
|
||||||
})
|
|
||||||
.take(n_points)
|
|
||||||
.collect::<Vec<String>>()
|
|
||||||
.join(",");
|
|
||||||
|
|
||||||
// right eye
|
// right eye
|
||||||
write!(&mut svg,
|
write!(&mut svg,
|
||||||
"<polyline fill=\"none\" stroke=\"whitesmoke\" stroke-width=\"15px\" x=\"1550\" y=\"50\" points=\"{:}\" />",
|
"<polyline fill=\"none\" stroke=\"whitesmoke\" stroke-width=\"30px\" x=\"1550\" y=\"50\" points=\"{:}\" />",
|
||||||
right_eye_path)?;
|
right_eye_path)?;
|
||||||
|
|
||||||
let n_points = rng.gen_range(3, 5);
|
let mouth_path = "550 1550, 1550 1550";
|
||||||
let mouth_path: String = std::iter::repeat(())
|
|
||||||
.map(|()| {
|
|
||||||
let x = 50 + 500 + (rng.gen_range(0, 10) * 100);
|
|
||||||
let y = 50 + 750 + (rng.gen_range(0, 5) * 50);
|
|
||||||
format!("{} {}", x, y)
|
|
||||||
})
|
|
||||||
.take(n_points)
|
|
||||||
.collect::<Vec<String>>()
|
|
||||||
.join(",");
|
|
||||||
|
|
||||||
// mouth
|
// mouth
|
||||||
write!(&mut svg,
|
write!(&mut svg,
|
||||||
"<polyline fill=\"none\" stroke=\"whitesmoke\" stroke-width=\"15px\" x=\"550\" y=\"800\" points=\"{:}\" />",
|
"<polyline fill=\"none\" stroke=\"whitesmoke\" stroke-width=\"30px\" x=\"550\" y=\"800\" points=\"{:}\" />",
|
||||||
mouth_path)?;
|
mouth_path)?;
|
||||||
|
|
||||||
write!(&mut svg, "</g></svg>")?;
|
write!(&mut svg, "</g></svg>")?;
|
||||||
|
|
||||||
|
// let dest = format!("/var/lib/mnml/face.svg");
|
||||||
let dest = format!("/var/lib/mnml/public/imgs/{}.svg", id);
|
let dest = format!("/var/lib/mnml/public/imgs/{}.svg", id);
|
||||||
println!("/var/lib/mnml/public/imgs/{}.svg", id);
|
|
||||||
|
|
||||||
let mut file = File::create(dest)?;
|
let mut file = File::create(dest)?;
|
||||||
file.write_all(&svg)?;
|
file.write_all(&svg)?;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user