Pythagoras tree: Difference between revisions
Content added Content deleted
m (→{{header|Rust}}: inserted a img) |
(→{{header|Rust}}: refactoring) |
||
Line 1,959:
</syntaxhighlight>
=={{header|Rust}}==
Creates a [https://static.miraheze.org/rosettacodewiki/1/18/Pythagoras_tree.svg '''
[[File:Pythagoras tree.svg]]
▲Creates a [https://static.miraheze.org/rosettacodewiki/1/18/Pythagoras_tree.svg '''Pythagoras_tree.svg file (12 levels)''']
'''[dependencies]'''<br>
svg = "0.
<syntaxhighlight lang="rust">use svg::node::element::{Group, Polygon};
fn main() {
let mut
let doc = (0..12_u8).fold(svg::Document::new().set("stroke", "white"), |doc_a, lvl| {
let rg = |step| lvl.wrapping_mul(step).wrapping_add(80 - step * 2);
let
doc_a.add(std::mem::take(&mut base).into_iter().fold(g, |ga, [a, b]| {
let v = (b.0 - a.0, b.1 - a.1);
let [c, d, w] =
let
}))▼
let (
▲ }
▲ let (x0, y0) = (base.iter()).fold((0.0, 0.0), |(x0, y0), [(x, y), _]| (x.min(x0), y.min(y0)));
▲ match svg::save(file, &doc.set("viewBox", (x0, y0, -x0 * 2.0, -y0))) {
}</syntaxhighlight>
|