1. 云栖社区>
2. PHP教程>
3. 正文

# PHP版国旗

<?php
\$Nationflag = ImageCreate(660, 440);
ImageColorAllocate (\$Nationflag,255,0,0);
DrawPentacle(\$Nationflag,180,150,120,120);
DrawPentacle(\$Nationflag,80,30,210,50);
DrawPentacle(\$Nationflag,120,30,250,100);
DrawPentacle(\$Nationflag,180,30,250,160);
DrawPentacle(\$Nationflag,100,30,210,210);
ImagePng(\$Nationflag);
\$yellow = imagecolorallocate(\$mFlag, 255, 255, 0);
\$PI = 3.14;
\$theta=54+\$mAngle;
for (\$i=0;\$i<5;\$i++) {//五顶点坐标
\$points[\$i]= array('x'=>\$r*cos((\$theta+\$i*72)*\$PI/180)+\$position_X,'y'=>-\$r*sin((\$theta+\$i*72)*\$PI/180)+\$position_Y);
}
for(\$i=0;\$i<5;\$i++){//五条线坐标
\$j=\$i>2?\$i-3:\$i+2;
\$lines[\$i] = array('x1' => \$points[\$i]['x'], 'y1' => \$points[\$i]['y'], 'x2' => \$points[\$j]['x'], 'y2' => \$points[\$j]['y']);
}
for(\$i=0;\$i<5;\$i++){//五交点坐标
\$j = \$i>3?0:\$i+1;
\$x12 = \$lines[\$i]['x1'] - \$lines[\$i]['x2'];
\$x34 = \$lines[\$j]['x1'] - \$lines[\$j]['x2'];
\$y12 = \$lines[\$i]['y1'] - \$lines[\$i]['y2'];
\$y34 = \$lines[\$j]['y1'] - \$lines[\$j]['y2'];
\$c = \$x12 * \$y34 - \$y12 * \$x34;
\$a = \$lines[\$i]['x1'] * \$lines[\$i]['y2'] - \$lines[\$i]['y1'] * \$lines[\$i]['x2'];
\$b = \$lines[\$j]['x1'] * \$lines[\$j]['y2'] - \$lines[\$j]['y1'] * \$lines[\$j]['x2'];
\$x = (\$a * \$x34 - \$b * \$x12) / \$c;
\$y = (\$a * \$y34 - \$b * \$y12) / \$c;
\$intersection[\$i]= array('x'=>\$x,'y'=>\$y);
}
for(\$i=0;\$i<3;\$i++){//三个三角形
\$Polygon[\$i] = array(\$points[\$i]['x'],\$points[\$i]['y'],\$points[\$i+2]['x'],\$points[\$i+2]['y'],\$intersection[\$i+2]['x'],\$intersection[\$i+2]['y']);
imagefilledpolygon(\$mFlag, \$Polygon[\$i], 3, \$yellow);
}
}
?>

40+云计算产品，6个月免费体验