!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/share/doc/perl-GD/demos/   drwxr-xr-x
Free 6181.92 GB of 6263.12 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:     polyline.pl (8.64 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
############################################################################
#
# Sample code for use of Polyline.pm
#
# Author:    Dan Harasty
# Email:    harasty@cpan.org
# Version:    0.1
# Date:        7/20/2002
#
#

use GD;
use GD::Polyline;

$PI = 3.14159; $TWO_PI = 2 * $PI;
sub r2d {$_[0] * 180 / $PI};

$splinekey = "<UL><LI>Green: original polygon or polyline<LI>Blue: control points added with addControlPoints()<LI>Black: spline generated by toSpline()</UL>";

if (1) {

    use GD;
    use GD::Polyline;

    # create an image
    $image = new GD::Image (500,300);
    $white  = $image->colorAllocate(255,255,255);
    $black  = $image->colorAllocate(  0,  0,  0);
    $red    = $image->colorAllocate(255,  0,  0);

    # create a new polyline
    $polyline = new GD::Polyline;

    # add some points
    $polyline->addPt(  0,  0);
    $polyline->addPt(  0,100);
    $polyline->addPt( 50,125);
    $polyline->addPt(100,  0);

    # polylines can use polygon methods (and vice versa)
    $polyline->offset(200,100);

    # rotate 60 degrees, about the centroid
    $polyline->rotate(3.14159/3, $polyline->centroid());

    # scale about the centroid
    $polyline->scale(1.5, 2, $polyline->centroid());

    # draw the polyline
    $image->polydraw($polyline,$black);

    # create a spline, which is also a polyine
    $spline = $polyline->addControlPoints->toSpline;
    $image->polydraw($spline,$red);

    # output the png
    #binmode STDOUT;
    #print $image->png;

    SampleImage($image, "polyline-synopsis.png", "Synopsis", "Polyline created by 'SYNOPSIS' section of documentation.");

}

if (1) {
    $image = NewImage();

    $offset = 50;


    for $poly (new GD::Polygon, new GD::Polyline) {

        $table_info = [];

        $poly->addPt(  0,  0);
        $poly->addPt(  0,100);
        $poly->addPt( 50,125);
        $poly->addPt(100,  0);

        #print "this " . ref($poly) . " has " . $poly->length() . " points\n";

        push @$table_info, ["<B>".ref($poly)."</B>"];
        push @$table_info, ['vertex number: ', 0..($poly->length()-1)];

        @coords = $poly->vertices();
        @coords = map {"[".int($_->[0]).",".int($_->[1])."]"} @coords;
        push @$table_info, ['coordinates (pre-offset): ', @coords];

        @lengths = $poly->segLength();
        @lengths = map {int($_+0.5)} @lengths;
        #print "segLengths are   : @lengths\n";
        #print "perimeter is     : " . int($poly->segLength()) . "\n";
        push @$table_info, ['segment lengths: ', @lengths];

        @angles = $poly->segAngle();
        @angles = map {int(r2d($_)+0.5)} @angles;
        #print "seg angles are   : @angles\n";
        push @$table_info, ['segment angles: ', @angles];

        @angles = $poly->vertexAngle();
        @angles = map {defined ($_) ? int(r2d($_)+0.5) : "undef"} @angles;
        #print "vertex angles are: @angles\n";
        push @$table_info, ['vertex angles: ', @angles];

        $poly->offset(50 + $offset,80);
        $offset += 200;

        # draw the original poly
        $image->polydraw($poly,$black);

        #print "\n\n";

        push @$summary_table, genHTMLTable($table_info, 0);
    }

    SampleImage($image, "polyline-simple.png", "Simple", "GD::Polygon and GD::Polyline with same vertexes.</P>" . genHTMLTable([$summary_table], 1));

}

if (1) {
    $image = NewImage();

    $offset = 50;

    for $poly (new GD::Polygon, new GD::Polyline) {

        $poly->addPt(  0,  0);
        $poly->addPt(  0,100);
        $poly->addPt( 50,125);
        $poly->addPt(100,  0);

        $poly->offset(50 + $offset,80);
        $offset += 200;

        # draw the original poly
        $image->polydraw($poly,$green);

        # create and draw the control line for the spline
        $ctrlline = $poly->addControlPoints();
        $image->polydraw($ctrlline,$cyan);

        # create and draw the spline itself
        $spline = $ctrlline->toSpline();
        $image->polydraw($spline,$black);

    }

    SampleImage($image, "polyline-spline.png", "Spline", "Splines fit to vertices of polygon and polyline.  $splinekey");

}


if (1) {
    $image = NewImage();

    $triangle = new GD::Polygon;

    $triangle->addPt(  0,  0);
    $triangle->addPt(-19, 95);
    $triangle->addPt( 19, 95);

    $triangle->offset(250,50);

    foreach (1..9) {
        $image->polydraw($triangle,gdBrushed);
        $triangle->rotate($TWO_PI / 9, 250, 150);
    }

    SampleImage($image, "polyline-star9.png", "Nine Pointed Star", "A triangle, rotated about a point other than the origin.<BR>Demonstration of \$poly->rotate() and \$poly->offset()");

}

if (1) {
    $image = NewImage();

    $cloverControl = new GD::Polyline;
    $cloverControl->addPt(45,45);
    $cloverControl->addPt(10,10);
    $cloverControl->addPt(90,10);
    $cloverControl->addPt(55,45);
    $cloverControl->addPt(90,10);
    $cloverControl->addPt(90,90);
    $cloverControl->addPt(55,55);
    $cloverControl->addPt(90,90);
    $cloverControl->addPt(10,90);
    $cloverControl->addPt(45,55);
    $cloverControl->addPt(10,90);
    $cloverControl->addPt(10,10);
    $cloverControl->addPt(45,45);

    $clover = $cloverControl->toSpline();

    # note that the three following transformations
    # could have been called on $cloverControl, instead,
    # followed by the above call

    $clover->offset($clover->centroid(-1));
    $clover->scale(3, 3);
    $clover->offset(250, 150);

    $image->filledPolygon($clover,$green);

    SampleImage($image, "polyline-clover.png", "Clover", "Sample image generated by GD::Polygon");

}

if (1) {
    $image = NewImage();

    $polyline = new GD::Polyline;

    for (0..15) {
        $polyline->addPt(30 * $_ + 10, rand(90) + 5);
    }

    $image->polyline($polyline,$green);

    $ctrlline = $polyline->addControlPoints();
    $ctrlline->offset(0,100);
    $image->polyline($ctrlline,$cyan);

    $spline = $ctrlline->toSpline();
    $spline->offset(0,100);
    $image->polyline($spline,$black);

    SampleImage($image, "polyline-zigzag.png", "Zigzag", "Spline fit to random function.  $splinekey");

}

if (1) {
    $image = NewImage();

    $ring_network = new GD::Polygon;

    $num_nodes = 10;
    $randfactor = 80;

    for (1..$num_nodes) {
        $x = 250 + 150 * cos($TWO_PI * $_/$num_nodes);
        $y = 150 + 100 * sin($TWO_PI * $_/$num_nodes);
        $x += rand($randfactor)-$randfactor/2;
        $y += rand($randfactor)-$randfactor/2;
        $ring_network->addPt($x, $y);
    }

    $image->setBrush($brush2);
    $image->polyline($ring_network->addControlPoints->toSpline,gdBrushed);

    $ring_node = new GD::Polygon;

    $ring_node->addPt( 0, 0);
    $ring_node->addPt(10, 0);
    $ring_node->addPt(10,10);
    $ring_node->addPt( 0,10);

    for $ring_vertex ($ring_network->vertices()) {
        $ring_node->offset($ring_node->centroid(-1));
        $ring_node->offset(@$ring_vertex);
        $image->filledPolygon($ring_node,$grey);
    }

    SampleImage($image, "polyline-ring-network.png", "Ring Network", "Closed spline fit to nodes at somewhat random positions.");

}

WriteToFile("polyline-example.html", theHTML());

print "\n";
print "open 'polyline-example.html' in your favorite browser that supports PNG.\n";
print "\n";

print "done! " . localtime() . "\n";

##########################
#
# helper functions
#

sub NewImage {
    $image = new GD::Image (500,300);

    $white  = $image->colorAllocate(255,255,255);
    $black  = $image->colorAllocate(  0,  0,  0);
    $grey   = $image->colorAllocate(128,128,128);
    $red    = $image->colorAllocate(255,  0,  0);
    $orange = $image->colorAllocate(255,196,  0);
    $green  = $image->colorAllocate(  0,255,  0);
    $blue   = $image->colorAllocate(  0,  0,255);
    $cyan   = $image->colorAllocate(  0,255,255);
    $purple = $image->colorAllocate(206,  0,165);

    $brush_width = 2;
    $brush_color = [255,128,0];
        $brush = new GD::Image($brush_width,$brush_width);
        $brush->transparent($brush->colorAllocate(255,255,255));
        $brush->filledRectangle(0,0,$brush_width,$brush_width,$brush->colorAllocate(@$brush_color));
    $brush1 = $brush;

    $brush_width = 3;
    $brush_color = [206,0,165];
        $brush = new GD::Image($brush_width,$brush_width);
        $brush->transparent($brush->colorAllocate(255,255,255));
        $brush->filledRectangle(0,0,$brush_width,$brush_width,$brush->colorAllocate(@$brush_color));
    $brush2 = $brush;

    $image->setBrush($brush1);

    $image;
}

my $html;

sub SampleImage {
    my $image = shift;
    my $file  = shift;
    my $title = shift;
    my $text  = shift;

    WriteToBinaryFile($file, $image->png());

    $html .= "<IMG SRC='$file'><BR>\n";
    $html .= "<B>$title</B> - $file<BR>\n";
    $html .= "<P>$text</P><HR>\n";

}

sub theHTML {
    $html;
}

sub WriteToFile {
    my $file = shift || return 0;
    my $contents = shift || "";

    open (NEWFILE, ">" . $file) or die "couldn't write to file $file";
    print NEWFILE $contents;
    close(NEWFILE);

    print "created file $file\n";
}

sub WriteToBinaryFile {
    my $file = shift || return 0;
    my $contents = shift || "";

    open (NEWFILE, ">" . $file) or die "couldn't write to file $file";
    binmode NEWFILE;
    print NEWFILE $contents;
    close(NEWFILE);

    print "created file $file\n";
}

sub genHTMLTable {
    my $array_of_arrays = shift;
    my $border = shift;
    my $html_table;

    $html_table .= "<TABLE BORDER='$border'>";
    for my $array_of_items (@$array_of_arrays) {
        $html_table .= "<TR><TD>";
        $html_table .= join("</TD><TD>", @$array_of_items);
        $html_table .= "</TD></TR>";
    }
    $html_table .= "</TABLE>";
    $html_table;
}


:: 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.0113 ]--