php绘图 函数平面坐标简易demo
<?php
$x_count=50;//x的数字长度
$y_count=50;//y的数字长度
$c=1;//原始单位1
$xc=1;//x坐标单位(倍数)
$yc=1;//y坐标单位(倍数)
$rate=10;//原始单位1的像素间隔
$w=$x_count*$rate;//坐标总宽
$h=$y_count*$rate;//坐标总高
$xo_count=25;//坐标原点(相对于0.0的数字长度)
$yo_count=25;//坐标原点(相对于0.0的数字长度)
$xo=$xo_count*$rate;//坐标原点(相对于0.0的像素)
$yo=$yo_count*$rate;//坐标原点(相对于0.0的像素)
$width=$w+1;
$height=$h+1;
$fun='$result=0.1*$m*$m;';//已$m
$x_cell=$c*$xc;//x单位
$y_cell=$c*$yc;//y单位
$x_pixel=$x_cell*$rate;//x单位像素
$y_pixel=$y_cell*$rate;//y单位像素
//绘图技术 基本步骤 前提:在php.ini文件中启用gd库
//创建画布 默认背景是黑色的
$img=imagecreatetruecolor($width,$height);
//绘制各种图形
//创建一个颜色
$background = imagecolorallocate($img, 255, 255, 255);
$color= imagecolorallocate($img, 255, 0, 255);
//画圆
//imageellipse($img,60,100,50,50,$background);
//椭圆
//imageellipse($img,60,180,50,30,$background);
//画直线
imageline($img,$xo,0,$xo,$height,$background);
imageline($img,0,$yo,$width,$yo,$background);
for($i=0;$i<=$w;$i+=$x_pixel){//宽
imageline($img,$xo+$i,$yo,$xo+$i,$yo-3,$background);
imagestring ($img , 1 , $xo+$i -3, $yo+7 , (string)$i/$x_pixel, $background );
if($i!=0){
imageline($img,$xo-$i,$yo,$xo-$i,$yo-3,$background);
imagestring ($img , 1 , $xo-$i -3, $yo+7 , (string)-$i/$x_pixel, $background );
}
}
for($i=0;$i<=$h;$i+=$y_pixel){//高
imageline($img,$xo,$yo+$i,$xo+3,$yo+$i,$background);
imagestring ($img , 1 , $xo-15 , $yo+$i-7 , (string)$i/$y_pixel, $background );
if($i!=0){
imageline($img,$xo,$yo-$i,$xo+3,$yo-$i,$background);
imagestring ($img , 1 , $xo-15 , $yo-$i-7 , (string)-$i/$y_pixel, $background );
}
}
draw($fun,$img,$color,$rate,$w,$xo,$yo);
//画矩形
//imagerectangle ($img, 400 , 200 , 600 , 80 , $background);
//填充矩形
//imagefilledrectangle ($img, 400 , 400 , 600 , 300 , $background);
//画弧线
//imagearc($img, 100, 300, 150, 150, 180, 270, $background);
//画扇型 IMG_ARC_CHORD直线连接了起始和结束点 IMG_ARC_PIE
//imagefilledarc($img, 100, 400, 150, 150, 180, 270, $background,IMG_ARC_PIE);
//拷贝图片到画布
//$scrImg=imagecreatefromgif('http://www.baidu.com/img/shouye_b5486898c692066bd2cbaeda86d74448.gif');
//$scrImgInfo=getimagesize('http://www.baidu.com/img/shouye_b5486898c692066bd2cbaeda86d74448.gif');
// imagecopy ($img,$scrImg,10,450,0,0,$scrImgInfo[0],$scrImgInfo[1]);
//imagecopy ($img,$scrImg,10,10,0,0,270,129);
//写字
//imagestring ($img , 5 , 20 , 20 , 'x:'.$xc, $background );
//imagestring ($img , 5 , 20 , 40 , 'y:'.$yc, $background );
//写中文
$str="PHP绘画技术";
// imagettftext ($img , 30 , 0 , 200 ,50, $background , "MSYHBD.TTF" , $str);
//输出图像到网页(或者另存为)
header("content-type: image/png");
imagepng($img);
//销毁该图片(释放内存)
imagedestroy($img);
function draw($fun,$img,$color,$rate,$w,$xo,$yo){
//$w=200;
for($i=0;$i<=$w;$i+=1){
$result=0;
$x= +$i;
$a=$x/$rate;
$m=$a;
//print_r($m);
eval($fun);
$b=$result;
$y=$b*$rate;
$xi = $x-1;
$ai=$xi/$rate;
$m=$ai;
eval($fun);
$bi=$result;
$yi=$bi*$rate;
imageline($img,$xo+$x,$yo-$y,$xo+$xi,$yo-$yi,$color);
$result=0;
$x= -$i;
$a=$x/$rate;
//print_r($x);
$m=$a;
eval($fun);
$b=$result;
$y=$b*$rate;
$xi = $x+1;
$ai=$xi/$rate;
$m=$ai;
eval($fun);
$bi=$result;
$yi=$bi*$rate;
imageline($img,$xo+$x,$yo-$y,$xo+$xi,$yo-$yi,$color);
//imagesetpixel($img,$x+400,$y+300,$color) ;
}
//print_r($a);die;
}
?>