!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache. PHP/7.3.33 

uname -a: Linux web25.us.cloudlogin.co 5.10.237-xeon-hst #1 SMP Mon May 5 15:10:04 UTC 2025 x86_64 

uid=233359(alpastrology) gid=888(tty) groups=888(tty),33(tape) 

Safe-mode: OFF (not secure)

/usr/lib64/perl5/vendor_perl/Prima/examples/   drwxr-xr-x
Free 6181.95 GB of 6263.15 GB (98.7%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     triangle.pl (4.45 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
=pod

=head1 NAME

examples/triangle.pl - Escher's Impossible Triangle

=head1 FEATURES

Demonstrates the basic usage of the Prima toolkit.

=cut

use strict;
use warnings;
use Prima qw(Buttons);
use constant PI => 4.0 * atan2 1, 1;
use constant D2R => PI / 180;
use constant Cos_120 => cos(D2R*(-120));
use constant Sin_120 => sin(D2R*(-120));

use Prima::Application name => "Escher's Impossible Triangle";

sub recalc_coordinates
{
    my $me = $_[0];
    $me-> {angle} = 0 unless exists $me-> {angle};
    delete $me-> {line1};
    delete $me-> {line2};
    delete $me-> {line3};
    my ($w, $h) = $me-> size;
    my $sz = ($w > $h ? $h : $w) * 0.8 * 0.5;
    my ($x, $y) = (25*$sz/34,$sz);
    my ($fx, $fy) = ($x,$y);
    ($w,$h) = ($w/2,$h/2);
    my $angle = $me-> {angle};
    for (1..3)
    {
        my $cos = cos(D2R*$angle);
        my $sin = sin(D2R*$angle);
        my @lines = ();
        ($x,$y) = ($fx, $fy);
        push @lines, $cos*$x-$sin*$y+$w, $sin*$x+$cos*$y+$h;
        $y = -$y;
        push @lines, $cos*$x-$sin*$y+$w, $sin*$x+$cos*$y+$h;
        # rotate -120
        $x = Cos_120*$fx - Sin_120*$fy;
        $y = Sin_120*$fx + Cos_120*$fy;
        push @lines, $cos*$x-$sin*$y+$w, $sin*$x+$cos*$y+$h;
        $y = -$y/2;
        push @lines, $cos*$x-$sin*$y+$w, $sin*$x+$cos*$y+$h;
        ($x, $y) = ($x-sqrt(3)*$y,0);
        push @lines, $cos*$x-$sin*$y+$w, $sin*$x+$cos*$y+$h;
        $me-> {'line' . $_} = [@lines];
        $angle += 120;
    }
}


my $w = Prima::MainWindow-> create(
#my $w = Window-> create(
    text   => $::application-> name,
    left   => 200,
    bottom => 300,
    width  => 400,
    height => 250,
    borderIcons => 0,
    windowState => ws::Maximized,
    borderStyle => bs::None,
    backColor => cl::Black,
    hiliteColor => cl::LightCyan,
    lineWidth => 2,
#   onSize    => \&recalc_coordinates,
    onCreate  => sub {
        $_[0]-> {r} = $_[0]-> {g} = $_[0]-> {b} = $_[0]-> {c} = 0;
        my $t = $_[0]-> insert( Timer => timeout => 10, name => 'Timer', onTick => sub {
            my $me = $_[0]-> owner;
            my $back = $me-> backColor;
#               my $fore = $me-> hiliteColor;
            $me-> {c} = 255 if $me-> {c} >= 1785;
            $me-> {c}++;
            if  ( $me-> {c}   <=  255) { $me-> {r}++; $me-> {g}++; $me-> {b}++; }
            elsif ( $me-> {c} <=  510) { $me-> {g}--; $me-> {b}--; }
            elsif ( $me-> {c} <=  765) { $me-> {g}++; }
            elsif ( $me-> {c} <= 1020) { $me-> {r}--; }
            elsif ( $me-> {c} <= 1275) { $me-> {b}++; }
            elsif ( $me-> {c} <= 1530) { $me-> {g}--; }
            else  { $me-> {g}++; $me-> {r}++;}
            $me-> {c} = 255 if $me-> {c} >= 1785;
            $me-> {c}++;
            if  ( $me-> {c}   <=  255) { $me-> {r}++; $me-> {g}++; $me-> {b}++; }
            elsif ( $me-> {c} <=  510) { $me-> {g}--; $me-> {b}--; }
            elsif ( $me-> {c} <=  765) { $me-> {g}++; }
            elsif ( $me-> {c} <= 1020) { $me-> {r}--; }
            elsif ( $me-> {c} <= 1275) { $me-> {b}++; }
            elsif ( $me-> {c} <= 1530) { $me-> {g}--; }
            else  { $me-> {g}++; $me-> {r}++;}
            $me-> {c} = 255 if $me-> {c} >= 1785;
            $me-> {c}++;
            if  ( $me-> {c}   <=  255) { $me-> {r}++; $me-> {g}++; $me-> {b}++; }
            elsif ( $me-> {c} <=  510) { $me-> {g}--; $me-> {b}--; }
            elsif ( $me-> {c} <=  765) { $me-> {g}++; }
            elsif ( $me-> {c} <= 1020) { $me-> {r}--; }
            elsif ( $me-> {c} <= 1275) { $me-> {b}++; }
            elsif ( $me-> {c} <= 1530) { $me-> {g}--; }
            else  { $me-> {g}++; $me-> {r}++;}
            my $fore = $me-> {b} | ($me-> {g}<<8) | ($me-> {r}<<16);
            my $l1 = $me-> {line1};
            my $l2 = $me-> {line2};
            my $l3 = $me-> {line3};
#            ($l1,$l2,$l3) = ();
            $me-> {angle} += 1;
            $me-> {angle} -= 360 if $me-> {angle} > 360;
            &recalc_coordinates($me);
            $me-> begin_paint;
            #$me-> color( $back);
            #$me-> polyline( $l1) if defined $l1;
            $me-> color( $fore);
            $me-> bar(0,0,30,30);
            $me-> polyline( $me-> {line1}) if exists $me-> {line1};
            $me-> color( $back);
            $me-> polyline( $l2) if defined $l2;
            $me-> color( $fore);
            $me-> polyline( $me-> {line2}) if exists $me-> {line2};
            #$me-> fillpoly( $me-> {line2}) if exists $me-> {line2};
            #$me-> color( $back);
            #$me-> polyline( $l3) if defined $l3;
            $me-> color( $fore);
            $me-> polyline( $me-> {line1}) if exists $me-> {line1};
            $me-> polyline( $me-> {line2}) if exists $me-> {line2};
            $me-> polyline( $me-> {line3}) if exists $me-> {line3};
            $me-> end_paint;
        });
        $t-> start;
        &recalc_coordinates($_[0]);
    },
    onPaint   => sub
    {
        my ($me,$canvas) = @_;
        $canvas-> color( $me-> backColor);
        $canvas-> bar( 0, 0, $canvas-> size);
    },
);

$w-> insert( Button =>
    text => "Install PRIMA now!",
    width => $w-> get_text_width( "Install PRIMA now!") * 1.2,
    # centered => 1,
    growMode => gm::Center,
    onClick => sub { $::application-> close},
);

run Prima;

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.0117 ]--