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);
>

Reply via email to