From 18da9a0891a1503d58e7a3fb4bf924a913e25f9c Mon Sep 17 00:00:00 2001 From: Georg Hopp Date: Fri, 3 Jan 2020 09:16:41 +0100 Subject: [PATCH] Add a readme file --- README.md | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..b3d59bc --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ +# Rust playground + +Things I have recently done while learning the Rust programming language. + +## Synopsis + +Change in one of the toplevel subdirectories and try `cargo build` or +`cargo run`. Maybe not everything is working oob. Feel free to fix whatever +you want. + +## Description + +Various small examples I have tried while learning rust. The biggest and +currently most active project is **fractional** which started as an +implamentation of a rational number data type and then switched to a 3D +math playground visualizing using **XCB** (in future it might also use +a **HTML5 Canvas** for drawing as WebAssembly application. +Using fractions with 3D math has several drawbacks: + +1. A huge part of 3D math is non rational, like sin, cos, tan and sqrt. +2. The numerator and denominator tend to become very huge while nearing to non + rational numbers and reduction is difficult and time consuming. +3. Because of 2 it is way slower than the floating point calculation (at least + with a decent coprocessor). + +Anyway, implementing the vector math stuff for both fractions and floating +point was a nice playground for generics and traits. In future I might add +another data type which implements the math as done by David Braben for the +elite computer game. + +## Requirements + +### Always + +- A recent version of the Rust programming language as well as tooling. + Currently I use Rust 1.39.0. + +### For fractional + +- A running X Server with **XCB** and **X11-SHM** extentions + +## Dependencies + +... + +## Contributing + +Feel free to make pull requests as you like, no guarantee that the will be +added. + +## License + +Copyright © 2020 Georg Hopp + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +## Author + +Georg Hopp