Thread WxPerl: Pixel färben schnell gemacht (29 answers)
Opened by Mampfgnom at 2010-11-16 11:40

Mampfgnom
 2010-11-16 11:40
#142773 #142773
User since
2010-11-16
16 Artikel
BenutzerIn
[default_avatar]
Hallo.

Jetzt habe ich es doch mal geschafft, mich anzumelden, weil ich ja sowie so alle paart Tage eine neue Frage zu einem Perl Problem haben werde^^

Jedenfalls tüftel ich zur Zeit mit Wx und will mein Apfelmännchen noch mal schneller zeichnen. Ich habe jetzt ein Programm geschrieben, was erst mal nur ein Rechteck pixelweise färbt. Meine Frage ist nun: Mache ich das richtig und vor allem schnellst möglich? Bei mir dauert das ca 3 Sekunden, bis er die Pixel färbt. Ich könnte schwören damals mit Delphi hat sowas nur Bruchteile einer Sekunde gedauert. Anbei mein Code:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/perl -w

use Wx qw[:allclasses];
use strict;

Apfel->new->MainLoop;

package Apfel;

use base qw(Wx::App);
use Wx::Event qw (EVT_BUTTON);

sub OnInit {
   my $frame = Wx::Frame->new( undef, -1, "Apfelmaennchen", [-1,-1], [1000,1000]);
   my $Button = Wx::Button->new($frame,-1,"Malen",[450,850],[100,50]);
   my $panel = Wx::Panel->new( $frame, -1, [0,0],[1000,8000]);
   my $dc = $frame->{dc} = Wx::MemoryDC->new();
   my $bmp = $frame->{bmp} = Wx::Bitmap->new( 800, 800 );
   $dc->SelectObject( $bmp );
   my $maltafel = $frame->{tafel} = Wx::StaticBitmap->new( $panel, -1, $bmp, [100,1]);
   $dc->Clear();
   $dc->SelectObject( $bmp );
      EVT_BUTTON($frame,$Button, \&malen);   
   
   $frame->Show(1);

sub malen {
   my $pinsel = Wx::Pen->new(Wx::Colour->new('red'),5,&Wx::wxSOLID);
   $dc->SetPen($pinsel);
#   $dc->DrawLine(200,200,300,300);
   for my $i (1..800){
      for my $j (1..800){
         $dc->DrawPoint($i,$j);
          }
   }
   
   $frame->{tafel}->SetBitmap( $frame->{bmp} );
   $frame->{dc}->SelectObject( $frame->{bmp} );
   $frame->{tafel}->Refresh();
}   
  
}

Last edited: 2010-11-16 12:25:42 +0100 (CET)

View full thread WxPerl: Pixel färben schnell gemacht