各位,闲来无事,我已经画出一个五角星,,只是还差上色,,各位如果有兴趣,就给这些星星上色分数很多哦~
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>五角星</title>
<style>
div{ position:absolute;width:1px;height:1px; background-color:#FF0000;}
</style>
</head><body><?
$base_point=array("x"=>300,"y"=>200);//外接圆圆心
$radius=200;//外接圆半径
$point_x=array();//求出各点坐标,-18°旋转下,看起来正一点
for ($degree=0;$degree<360;$degree+=72)
{
$point[]=array(
"x"=>round(cos(deg2rad($degree))*$radius+$base_point["x"],2),
"y"=>round(sin(deg2rad($degree))*$radius+$base_point["y"],2)
);
}
for ($i=0;$i<5;$i++)
{
if($i<3)
{
$to=$i+2;
}
else
{
$to=$i-3;
} draw_line($point[$i],$point[$to]);}
/**
 * 画线
 * @param  $p1  array
 * @param  $p2   array
 * demo
 * draw_line(array("x"=>80,"y"=>90),array("x"=>250,"y"=>180))
 *
 * **/
function draw_line($p1,$p2)
{
//与y轴平行
if($p2["x"]==$p1["x"])
{
$start=min($p1["y"],$p2["y"]);
$end=max($p1["y"],$p2["y"]);
for ($i=$start;$i<$end;$i+=0.1)
{
draw_dot($i,$p1["x"]);
} }
//与x轴平行
if($p2["y"]==$p1["y"])
{
$start=min($p1["x"],$p2["x"]);
$end=max($p1["x"],$p2["x"]);
for ($i=$start;$i<$end;$i+=0.1)
{
draw_dot($p1["y"],$i);
} }
//不与坐标轴平行
if($p1["x"]!=$p2["x"]&&$p1["y"]!=$p2["y"])
{
$k=($p2["y"]-$p1["y"])/($p2["x"]-$p1["x"]);//斜率
$b=$p1["y"]-$k*$p1["x"];//截距 // y=kx+b (x∈[$p1[x],$p2[$x]])
$start=min($p1["x"],$p2["x"]);
$end=max($p1["x"],$p2["x"]); for ($i=$start;$i<=$end;$i+=0.1)
{
$y=round(($k*$i+$b),2);
draw_dot($y,$i);
}
}
}
//画点
function draw_dot($x,$y)
{ echo "<div style='top:{$x}px;left:{$y}px'></div>";}
?>
</body>
</html>