sunburst.rs 620 B

1234567891011121314151617181920212223242526
  1. extern crate gunpowder_treason as gt;
  2. extern crate rand;
  3. fn main() {
  4. let (w, h) = (8.5, 11.0);
  5. let mut drawing = gt::svg(w, h);
  6. let rs = (0u64..100)
  7. .scan((0u64, 5.5f64), |&mut (_, s), x: u64| {
  8. Some((x, s + (rand::random::<f64>() * 0.5) - 0.25))
  9. });
  10. for (x, r) in rs {
  11. let xn = 0.8 + (x as f64 * (8.5 - 1.6)) / 100.0;
  12. drawing.add(
  13. gt::line(xn, 0.8).to(xn, r - 0.8)
  14. );
  15. drawing.add(
  16. gt::line(xn, 10.2).to(xn, r + 0.8)
  17. );
  18. }
  19. if let Err(e) = drawing.output("sunburst") {
  20. eprintln!("{}", e);
  21. };
  22. }