カテゴリ
全体プログラミング scheme verilog 未分類 以前の記事
2016年 04月2016年 03月 2016年 02月 2016年 01月 2015年 12月 2015年 11月 2015年 10月 2015年 09月 2015年 08月 2015年 07月 2015年 06月 2015年 03月 お気に入りブログ
PHPで競技プログラミングメモ帳
最新のトラックバック
ライフログ
検索
タグ
racket
その他のジャンル
ブログパーツ
最新の記事
外部リンク
ファン
記事ランキング
ブログジャンル
画像一覧
|
big-bangを使って、3つの円がぐるぐる回るアニメーションを作りました。
最初は、map, fold, set!やパラメータを使って書いてましたが、コードの見た目がすっきりしなかったので、ハードコーディングで書き直しました。実行効率も、頑張ってmutableにしてみたものとあまり変わらず、むしろ関数が少ない分効率がいいです。 とはいえ、Dr. Racketの動かし方で、GCが沢山動く場合があります。RacketでGUIを動かすのは難しいのかもしれません。 [スナップショット] [ソースコード] #lang racket
(require 2htdp/universe 2htdp/image lang/posn) (struct stat (cnt red blue yellow)) (define RAD-UNIT (* 2.0 pi)) (define DEGREE (/ RAD-UNIT 360.0)) (define (start) (big-bang (stat 0 (* 0.0 DEGREE) (* 30.0 DEGREE) (* 60.0 DEGREE)) {on-tick (lambda (s) (stat (add1 (stat-cnt s)) (+ (stat-red s) (* 10.0 DEGREE)) (+ (stat-blue s) (* 5.0 DEGREE)) (+ (stat-yellow s) (* 7.5 DEGREE))))} {on-draw (lambda (s) (place-images/align (list (circle 20 "solid" "red") (circle 12 "solid" "blue") (circle 18 "solid" "yellow")) (list (make-posn (+ (* (cos (stat-red s)) 100) 250) (+ (* (sin (stat-red s)) 100) 250)) (make-posn (+ (* (cos (stat-blue s)) 50) 250) (+ (* (sin (stat-blue s)) 50) 250)) (make-posn (+ (* (cos (stat-yellow s)) 150) 250) (+ (* (sin (stat-yellow s)) 150) 250))) "center" "center" (empty-scene 500 500)))} {stop-when (lambda (s) (>= (stat-cnt s) 200))}))
by tempurature
| 2015-12-13 22:23
| scheme
| ||||||||||||||||||||||
ファン申請 |
||