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

PHP版国旗

作者:用户 来源:互联网 时间:2017-12-01 17:29:57

php

PHP版国旗 - 摘要: 本文讲的是PHP版国旗, 最近流行画国旗么。。。。我来补充个php版的 PS:1.真心锯齿  2.星星的角度位置没仔细调.....<?php$Nationflag = ImageCreate(660, 440);ImageColorAllocate ($Na


最近流行画国旗么。。。。我来补充个php版的 PS:1.真心锯齿  2.星星的角度位置没仔细调.....

<?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);
Header('Content-type: image/png');
ImagePng($Nationflag);
ImageDestroy($Nationflag);function DrawPentacle($mFlag,$mAngle,$mRadius,$position_X,$position_Y){
$yellow = imagecolorallocate($mFlag, 255, 255, 0);
$PI = 3.14;
$theta=54+$mAngle;
for ($i=0;$i<5;$i++) {//五顶点坐标
$r = $mRadius*sin(18*$PI/180)/sin(54*$PI/180);
$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);
}
}
?>

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php ,以便于您获取更多的相关知识。