471,066 Members | 1,552 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,066 software developers and data experts.

filled polygon does not render 129th time on same image

I have a function which creates a polygon of blue color. I call this function inside a loop of 128 iterations. For every iteration, i change the value of x and y so that my polygon is rendered on new location. This goes fine and i get 128 new polygons on my image after running the script. But if change the number to 129, the 129th polygon is transparent or what i cannot guess.It just does not display or render at all. Is this a bug or some mistake with my code?

I am using php version 5.1.4 that came with WAMP5 Version 1.6.3

my code is -
[php]<?php
$im = imagecreate(600, 400);
$x = 20;
$y = 350;
for($i=1;$i<=128;$i++) //create a polygon 128 times
{
drawPoly($x,$y,$im);
$x = $x+2;
$y = $y-2;
}
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
function drawPoly($xCoord,$yCoord,$im)
{
$x1 = $x2 = $xCoord;
$x3 = $x4 = $xCoord + 70;
$y1 = $y4 = $yCoord;
$y2 = $y3 = $yCoord + 30;
$Poly = array(0 => $x1,1 => $y1,2 => $x2,3 => $y2,4 => $x3,5 => $y3,6

=> $x4,7 => $y4);
$bg = imagecolorallocate($im, 150, 150, 150);
$blue = imagecolorallocate($im, 0, 0, 255);
imagefilledpolygon($im, $Poly, 4, $blue);
}
?>[/php]
Mar 20 '08 #1
2 1339
ronverdonk
4,258 Expert 4TB
Please enclose your posted code in [code] tags (See How to Ask a Question).

This makes it easier for our Experts to read and understand it. Failing to do so creates extra work for the moderators, thus wasting resources, otherwise available to answer the members' questions.

Please use [code] tags in future.

MODERATOR
Mar 20 '08 #2
The issue is solved. It was the problem with the code.

i took this line $bg = imagecolorallocate($im, 150, 150, 150); outside the function drawPoly(), and everything worked as

expected.

the new updated code is -
Expand|Select|Wrap|Line Numbers
  1. <?php
  2. $im = imagecreate(600, 400);
  3. $bg   = imagecolorallocate($im, 150, 150, 150);
  4. $x = 20;
  5. $y = 350;
  6. for($i=1;$i<=150;$i++) //create a polygon 128 times
  7.     {
  8.         drawPoly($x,$y,$im);
  9.         $x = $x+2;
  10.         $y = $y-2;
  11.     }
  12.     header('Content-type: image/png');
  13.     imagepng($im);
  14.     imagedestroy($im);    
  15.     function drawPoly($xCoord,$yCoord,$im)
  16.     {
  17.         $x1 = $x2 = $xCoord;
  18.         $x3 = $x4 = $xCoord + 70;
  19.         $y1 = $y4 = $yCoord;
  20.         $y2 = $y3 = $yCoord + 30;
  21.         $Poly = array(0  => $x1,1  => $y1,2  => $x2,3  => $y2,4  => $x3,5  => $y3,6  => $x4,7  => $y4);
  22.         $blue = imagecolorallocate($im, 0, 0, 255);
  23.         imagefilledpolygon($im, $Poly, 4, $blue);
  24.     }
  25. ?>
  26.  
But i still want to know why this happened and why it worked when i took that line outside the function?
Mar 21 '08 #3

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

2 posts views Thread by Jeronimo Bertran | last post: by
BSOB
6 posts views Thread by BSOB | last post: by
1 post views Thread by Ofir Picazo | last post: by
6 posts views Thread by moondaddy | last post: by
8 posts views Thread by jpatchak | last post: by
reply views Thread by leo001 | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.