Showing
1 changed file
with
21 additions
and
22 deletions
| ... | ... | @@ -339,8 +339,6 @@ fn main() { |
| 339 | 339 | canvas.init_events(); |
| 340 | 340 | |
| 341 | 341 | let (tx, rx) = mpsc::channel(); |
| 342 | - let tx1 = mpsc::Sender::clone(&tx); | |
| 343 | - canvas.start_events(tx); | |
| 344 | 342 | |
| 345 | 343 | let i = Vector(Fractional( 0,1), Fractional(-35,1), Fractional(0,1)); |
| 346 | 344 | let j = Vector(Fractional( 30,1), Fractional( 17,1), Fractional(0,1)); |
| ... | ... | @@ -351,34 +349,35 @@ fn main() { |
| 351 | 349 | (n / d + if (n % d).abs() < (n / 2).abs() { 0 } else { 1 }) as i32 |
| 352 | 350 | } |
| 353 | 351 | |
| 352 | + canvas.start_events(tx); | |
| 353 | + | |
| 354 | 354 | thread::spawn(move || { |
| 355 | + let mut deg :i32 = 0; | |
| 355 | 356 | loop { |
| 356 | - tx1.send(0).unwrap(); | |
| 357 | - thread::sleep(time::Duration::from_millis(10)); | |
| 357 | + let rot :TMatrix<Fractional> = rotate_z(deg) * rotate_x(-deg); | |
| 358 | + | |
| 359 | + let Vector(ix, iy, _) = rot.apply(&i); | |
| 360 | + let Vector(jx, jy, _) = rot.apply(&j); | |
| 361 | + let Vector(kx, ky, _) = rot.apply(&k); | |
| 362 | + | |
| 363 | + let pg = Polygon( | |
| 364 | + Coordinates(vec!( Coordinate(to_i32(ix), to_i32(iy)) | |
| 365 | + , Coordinate(to_i32(jx), to_i32(jy)) | |
| 366 | + , Coordinate(to_i32(kx), to_i32(ky)) ))); | |
| 367 | + canvas.clear(); | |
| 368 | + canvas.draw(&pg, Coordinate(75,75)); | |
| 369 | + canvas.show(); | |
| 370 | + | |
| 371 | + deg = (deg + 1) % 360; | |
| 372 | + | |
| 373 | + thread::sleep(time::Duration::from_millis(5)); | |
| 358 | 374 | } |
| 359 | 375 | }); |
| 360 | 376 | |
| 361 | - let mut deg :i32 = 0; | |
| 362 | - | |
| 363 | 377 | for x in rx { |
| 364 | 378 | match x { |
| 365 | 379 | 1 => break, |
| 366 | - _ => { | |
| 367 | - let rot :TMatrix<Fractional> = rotate_z(deg); | |
| 368 | - let Vector(ix, iy, _) = rot.apply(&i); | |
| 369 | - let Vector(jx, jy, _) = rot.apply(&j); | |
| 370 | - let Vector(kx, ky, _) = rot.apply(&k); | |
| 371 | - | |
| 372 | - let pg = Polygon( | |
| 373 | - Coordinates(vec!( Coordinate(to_i32(ix), to_i32(iy)) | |
| 374 | - , Coordinate(to_i32(jx), to_i32(jy)) | |
| 375 | - , Coordinate(to_i32(kx), to_i32(ky)) ))); | |
| 376 | - | |
| 377 | - canvas.clear(); | |
| 378 | - canvas.draw(&pg, Coordinate(75,75)); | |
| 379 | - canvas.show(); | |
| 380 | - deg = (deg + 3) % 359; | |
| 381 | - }, | |
| 380 | + _ => {}, | |
| 382 | 381 | } |
| 383 | 382 | } |
| 384 | 383 | } | ... | ... |
Please
register
or
login
to post a comment