1 changed files with 70 additions and 0 deletions
-
70README.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 <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
## Author |
||||
|
|
||||
|
Georg Hopp <georg@steffers.org> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue