+ -
当前位置:首页 → 问答吧 → 没事的人可以继续挑战,用PHP画五角星。。

没事的人可以继续挑战,用PHP画五角星。。

时间:2011-11-14

来源:互联网

各位,闲来无事,我已经画出一个五角星,,只是还差上色,,各位如果有兴趣,就给这些星星上色。。。分数很多哦~

PHP code

<!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>



作者: TottyAndBaty   发布时间: 2011-11-14

这个好玩,收藏啦

作者: belin520   发布时间: 2011-11-14

隔岸观望~

作者: changjay   发布时间: 2011-11-15