Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: PDL 3d image cube

by zentara (Archbishop)
on Jan 04, 2007 at 21:13 UTC ( #593020=note: print w/replies, xml ) Need Help??


in reply to PDL 3d image cube

The fellow that writes the GD interface to PDL, PDL::IO::GD, (Judd Taylor) has upgraded the PDL cvs to fix the module to use FreeType fonts. SO... yippie... you can do away with the writing of the temp 2d image files to disk, and use inline memory images.

To get the cvs version of PDL

cvs -z3 -d:pserver:anonymous@pdl.cvs.sourceforge.net:/cvsroot/pdl co +-P PDL
then there will be a PDL directory in your homedir.

If built succesfully, the following improved image cube will run. Generic.ttf is any truetype font file in the local dir. I copied arial.ttf in.

#!/usr/bin/perl use warnings; use strict; use PDL::LiteF; use PDL::Graphics::TriD; # Need this to display use PDL::NiceSlice; use PDL::IO::GD; my $image = PDL::IO::GD->new( { x => 200, y => 200, true_color => 1 } +); # Allocate some colors: # my $black = $image->ColorAllocate( 0, 0, 0 ); my $white = $image->ColorAllocate( 255, 255, 255 ); my $red = $image->ColorAllocate( 255, 0, 0 ); my $green = $image->ColorAllocate( 0, 255, 0 ); my $blue = $image->ColorAllocate( 0, 0, 255 ); my $yellow = $image->ColorAllocate( 255, 255, 0 ); my $grey = $image->ColorAllocate( 200, 200, 200 ); my %pdls; my %color = ( 1 => [ 'white', $white ], 2 => [ 'red', $red ], 3 => [ 'green', $green ], 4 => [ 'blue', $blue ], 5 => [ 'yellow', $yellow ], 6 => [ 'grey', $grey ], ); foreach my $num ( keys %color ) { $image->FilledRectangle( 0, 0, 200, 200, $color{ $num }[ 1 ] ); # Add some text: my @brect; $image->StringFT( \@brect, $black, "./Generic.ttf", 120, 0, 50, 150 +, $num ); $pdls{ $num } = $image->to_pdl(); } nokeeptwiddling3d(); hold3d(); # side 1 of space imagrgb3d $pdls{ 1 }->mv( 2, 0 )->( :, -1 : 0, : )->float / 256, { Points => [ [ 0, 0, 1 ], [ 0, 0, 0 ], [ 1, 0, 0 ], [ 1, 0, 1 ] ] }; #side 2 of space imagrgb3d $pdls{ 2 }->mv( 2, 0 )->( :, -1 : 0, : )->float / 256, { Points => [ [ 0, 1, 0 ], [ 1, 1, 0 ], [ 1, 0, 0 ], [ 0, 0, 0 ] ] }; #side 3 of space imagrgb3d $pdls{ 3 }->mv( 2, 0 )->( :, -1 : 0, : )->float / 256, { Points => [ [ 1, 1, 0 ], [ 1, 1, 1 ], [ 1, 0, 1 ], [ 1, 0, 0 ] ] }; #side 4 of space imagrgb3d $pdls{ 4 }->mv( 2, 0 )->( :, -1 : 0, : )->float / 256, { Points => [ [ 1, 1, 1 ], [ 0, 1, 1 ], [ 0, 0, 1 ], [ 1, 0, 1 ] ] }; + #good #side 5 of space imagrgb3d $pdls{ 5 }->mv( 2, 0 )->( :, -1 : 0, : )->float / 256, # {Points => [[0,0,0],[0,0,1],[0,1,1],[0,1,0]]}; { Points => [ [ 0, 1, 1 ], [ 0, 1, 0 ], [ 0, 0, 0 ], [ 0, 0, 1 ] ] }; #side 6 of space imagrgb3d $pdls{ 6 }->mv( 2, 0 )->( :, -1 : 0, : )->float / 256, { Points => [ [ 1, 1, 1 ], [ 1, 1, 0 ], [ 0, 1, 0 ], [ 0, 1, 1 ] ] }; keeptwiddling3d(); twiddle3d();

I'm not really a human, but I play one on earth. Cogito ergo sum a bum

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://593020]
help
Chatterbox?
[marto]: Sharepoint ss a mess
[marto]: /ss/is/
[Discipulus]: yes I can imagine marto but they dont take my opinion in consideration..
[marto]: I told our client this, they spent many years and lots of consultants to try and get it to do what they wanted. They're ditching it now
[Discipulus]: I hope at least a minimal implementation, in the middle of july i'll have the first introductional course..

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (7)
As of 2017-06-27 09:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many monitors do you use while coding?















    Results (601 votes). Check out past polls.