Um how do I get the x,y coords and the data you want me to put there from $sdl?
On Mon, Nov 16, 2009 at 7:13 PM, Chris Marshall <c...@alum.mit.edu> wrote: > David Mertens wrote: > > On Mon, Nov 16, 2009 at 4:51 PM, Kartik Thakore > <thakore.kar...@gmail.com<mailto: >> thakore.kar...@gmail.com>> wrote: >> >> How do I update this? like animation? >> >> while(1) >> { >> >> $pdl_memory->get_dataref(); >> >> } >> >> >> Yeah, you know, I used a terrible variable name for that piddle. Let's >> try this: >> --------%<-------- >> >> use PDL; >> use PDL::NiceSlice; >> >> # Allocate a 10x10 array for rgb. I think that only the zeroes function # >> allows you to declare a piddle with a specific data type >> > > > perldl> ?sequence > Module PDL::Basic > sequence > Create array filled with a sequence of values > > $a = sequence($b); $a = sequence [OPTIONAL TYPE], @dims; > > etc. see zeroes. > > perldl> p sequence(10) > [0 1 2 3 4 5 6 7 8 9] > perldl> p sequence(3,4) > [ > [ 0 1 2] > [ 3 4 5] > [ 6 7 8] > [ 9 10 11] > ] > > Docs from /c/site/perl/lib_pdl/cygwin-thread-multi-64int/PDL/Basic.pm > > So you can do: > > perldl> $a = sequence(byte, 3, 10, 10); > > perldl> p $a->info > PDL: Byte D [3,10,10] > > > > my $pdl = zeroes(byte, 3, 10, 10); > >> # Set values. Use in place to be sure we don't get another allocation, >> which may be the wrong type. >> # Note that the sequence wraps back to zero after hitting 256, because >> they're bytes! >> $pdl->inplace->sequence; >> >> # Now for a really silly animation - turn all the pixels white >> for (my $i = 0; $i < 300; $i++) { >> $pdl()->clump(-1)->($i) = 255; >> # Do something with piddle data here. >> } >> >> --------%<-------- >> >> Is that a bit clearer? Does anybody have a better sample? >> > > You could use the PDL life example of threading that Matt posted > earlier today. Just make an empty $sdl piddle with dims [3,N,M], > a $life piddle with shape [N,M] for the life updates, init $life, > then copy each update from the $life to the $sdl, maybe like: > > $sdl .= $life(*3); >