|
|
@ -344,12 +344,12 @@ fn main() { |
|
|
// use floating point values.
|
|
|
// use floating point values.
|
|
|
// https://rechneronline.de/pi/tetrahedron.php
|
|
|
// https://rechneronline.de/pi/tetrahedron.php
|
|
|
// yi = a / 12 * √6
|
|
|
// yi = a / 12 * √6
|
|
|
// yc = a / 4 * √6
|
|
|
|
|
|
// zi = √3 / 6 * a
|
|
|
|
|
|
// zc = √3 / 3 * a
|
|
|
|
|
|
let yi = 60.0 / 12.0 * 6.0.sqrt().unwrap();
|
|
|
let yi = 60.0 / 12.0 * 6.0.sqrt().unwrap();
|
|
|
|
|
|
// yc = a / 4 * √6
|
|
|
let yc = 60.0 / 4.0 * 6.0.sqrt().unwrap();
|
|
|
let yc = 60.0 / 4.0 * 6.0.sqrt().unwrap();
|
|
|
|
|
|
// zi = √3 / 6 * a
|
|
|
let zi = 3.0.sqrt().unwrap() / 6.0 * 60.0;
|
|
|
let zi = 3.0.sqrt().unwrap() / 6.0 * 60.0;
|
|
|
|
|
|
// zc = √3 / 3 * a
|
|
|
let zc = 3.0.sqrt().unwrap() / 3.0 * 60.0;
|
|
|
let zc = 3.0.sqrt().unwrap() / 3.0 * 60.0;
|
|
|
|
|
|
|
|
|
let i = Vector( 0.0, yc, 0.0);
|
|
|
let i = Vector( 0.0, yc, 0.0);
|
|
|
@ -471,7 +471,6 @@ fn main() { |
|
|
canvas.draw( &co, Coordinate(0,0), 0x0000FF);
|
|
|
canvas.draw( &co, Coordinate(0,0), 0x0000FF);
|
|
|
canvas.draw( &cl, Coordinate(0,0), 0x0000FF);
|
|
|
canvas.draw( &cl, Coordinate(0,0), 0x0000FF);
|
|
|
canvas.draw( &cr, Coordinate(0,0), 0x0000FF);
|
|
|
canvas.draw( &cr, Coordinate(0,0), 0x0000FF);
|
|
|
canvas.show();
|
|
|
|
|
|
|
|
|
|
|
|
let passed = Instant::now() - last;
|
|
|
let passed = Instant::now() - last;
|
|
|
let f = (passed.as_nanos() / step.as_nanos()) as u32;
|
|
|
let f = (passed.as_nanos() / step.as_nanos()) as u32;
|
|
|
@ -481,7 +480,10 @@ fn main() { |
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
last = last + step*(f + 1);
|
|
|
last = last + step*(f + 1);
|
|
|
println!("Sleep for: {:?}", last - Instant::now());
|
|
|
|
|
|
|
|
|
canvas.put_text( Coordinate(10, 15)
|
|
|
|
|
|
, &format!( "sleep: {:?}"
|
|
|
|
|
|
, last - Instant::now() ));
|
|
|
|
|
|
canvas.show();
|
|
|
thread::sleep(last - Instant::now());
|
|
|
thread::sleep(last - Instant::now());
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
|