Sierpinski curve: Difference between revisions
m
Rust - reformatted with rustfmt
m (Minor edit) |
m (Rust - reformatted with rustfmt) |
||
Line 607:
struct SierpinskiCurve {
current_x
current_y
current_angle
line_length
}
impl SierpinskiCurve {
fn new(x
SierpinskiCurve {
current_x
current_y
current_angle
line_length
}
}
fn rewrite(order
let mut str = String::from("F--XF--F--XF");
for _ in 0..order {
Line 629:
match ch {
'X' => tmp.push_str("XF+G+XF--F--XF+G+X"),
_ => tmp.push(ch),
}
}
Line 636:
str
}
fn execute(&mut self, order
let mut data = Data::new().move_to((self.current_x, self.current_y));
for ch in SierpinskiCurve::rewrite(order).chars() {
Line 653:
.set("d", data)
}
fn draw_line(&mut self, data
use std::f64::consts::PI;
let theta = (PI * self.current_angle as f64) / 180.0;
Line 660:
data.line_to((self.current_x, self.current_y))
}
fn turn(&mut self, angle
self.current_angle = (self.current_angle + angle) % 360;
}
fn save(file
use svg::node::element::Rectangle;
let x = 5.0;
|