<div dir="ltr">Thanks, metapict looks great!<div><br></div><div>martin</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 22, 2014 at 12:44 PM, Jens Axel Søgaard <span dir="ltr"><<a href="mailto:jensaxel@soegaard.net" target="_blank">jensaxel@soegaard.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Martin,<br>
<br>
As an example I implemented the standing wave animation.<br>
<br>
The MetaPict package is available through the package system.<br>
Use the package manager in DrRacket to install install it.<br>
The run the program below in DrRacket to see a standing wave.<br>
<br>
The documentation of the MetaPict package is here:<br>
    <a href="http://soegaard.github.io/docs/metapict/metapict.html" target="_blank">http://soegaard.github.io/docs/metapict/metapict.html</a><br>
<br>
Enjoy,<br>
Jens Axel<br>
<br>
#lang racket<br>
(require metapict<br>
         metapict/graph<br>
         (only-in 2htdp/universe animate)<br>
         (only-in 2htdp/image freeze))<br>
<br>
(set-curve-pict-size 400 100)  ; size 400 x 100 pixels<br>
<br>
; red-circle : point -> pict<br>
;  red disk with center in the point p drawn with black periphery<br>
(define (red-circle p)<br>
  (def c (circle p 0.1))<br>
  (draw (color "red" (fill c)) ; red, filled circle<br>
        c))                    ; black outline<br>
<br>
<br>
(define N 100) ; number of frames in the animation<br>
(define (f m)<br>
  ; The function to graph at time t is cos(ωt)*sin(kx), where t is in [0;2pi].<br>
  ; First we convert the frame number to time:<br>
  (define t (* 2 pi (/ (remainder m N) N)))<br>
  (define ω 1) ; angular frequency<br>
  (define k 1) ; wave number<br>
  ; The actual function to graph<br>
  (λ (x) (* (cos (* ω t)) (sin (* k x)))))<br>
<br>
<br>
(define (animation-frame m)<br>
  (with-window (window/aspect -0.2 (+ (* 4 pi) 0.2) ; x in [-0.1, 4pi+0.1]<br>
                              -1.2)             ; y in [-0.1, 1.1]<br>
    (pict->bitmap ; animate needs bitmaps<br>
     (draw<br>
      ; graph the function f from 0 to 4pi<br>
      (graph (f m) 0 (* 4 pi))<br>
      ; five red dots at the nodes (0,0), (pi,0), ...<br>
      (for/draw ([n 5])<br>
          (red-circle (pt (* n pi) 0)))))))<br>
<br>
; animate them!<br>
(animate animation-frame)<br>
<div><div class="h5"><br>
<br>
<br>
2014-09-22 20:49 GMT+02:00 Martin DeMello <<a href="mailto:martindemello@gmail.com">martindemello@gmail.com</a>>:<br>
> I was looking through <a href="http://en.wikipedia.org/wiki/User:LucasVB/Gallery" target="_blank">http://en.wikipedia.org/wiki/User:LucasVB/Gallery</a><br>
> (generated, according to the author, with a combination of php and libgd),<br>
> and wondered if anyone was doing similar stuff in racket. I'd love to see<br>
> code samples if so.<br>
><br>
> martin<br>
><br>
</div></div>> ____________________<br>
>   Racket Users list:<br>
>   <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
><br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
--<br>
--<br>
Jens Axel Søgaard<br>
</font></span></blockquote></div><br></div>