2 releases
0.1.1 | Aug 2, 2023 |
---|---|
0.1.0 | Aug 1, 2023 |
#448 in #structure
24 downloads per month
41KB
775 lines
Lazy Diamond-Square
The lazy_diamond_square allow you to use the Diamond-Square algorithm to generate your own landscapes or anything else where it might come in handy.
Example
use lazy_diamond_square as lds;
use lds::{Builder, InitBy as By};
fn main() {
let mut map = Builder::new(513, 0.15)
.seed("qwerty")
.init_lvl(2)
.init_by(By::Seed)
.build();
let max_coord = map.max_coord();
map.gen_area((0, 0), (max_coord, max_coord));
map.get_img((0, 0), (max_coord, max_coord), Some("view.png"));
}
Examples of work
roughness = 0.15, Seed("view1.png")
roughness = 0.2, Seed("view2.png")
roughness = 0.2, Seed("view3.png"), InitLevel(4)
Sources
-
Habr article (it's in Russian, so I suggest you use an extension in your browser, like ImTranslator for FireFox, for example).
-
Wikipedia page (versions in all languages except the one with ligatures)
-
And anything else you can google for "diamond square". It's very long to list everything, so I just pointed out the main things and this item.
Conclusion
I just wanted to let you know that I'm 13 and this is my first serious project, so I'll be only glad for criticism and advice on how to improve my project. All text in this file is translated with the help of a translator, because I don't know English so well yet.
Dependencies
~5MB
~63K SLoC