初学阶段,画个正弦函数图像(还有一些问题未解决)
时间:2007-01-07
来源:互联网
<?php
$w=970;
$h=600;//定义画布长宽
$im=imagecreate($w,$h);
$bgcolor=imagecolorallocate($im,0,0,0);//定义背景颜色
$xcolor=imagecolorallocate($im,255,255,255);//定义坐标轴的颜色
$yarray=imageline($im,10,10,20,0,$xcolor);
$yarray1=imageline($im,20,0,30,10,$xcolor);//y轴方向
$ybiaozhi=imagestring($im,5,25,15,"Y",$xcolor);//y
$xarray=imageline($im,940,290,950,300,$xcolor);
$xarray1=imageline($im,940,310,950,300,$xcolor);//x轴方向
$xbiaozhi=imagestring($im,5,935,310,"X",$xcolor);//x
$x=imageline($im,0,300,950,300,$xcolor);//X轴
$y=imageline($im,20,0,20,600,$xcolor);//Y轴
imagestring($im,2,10,285,0,$xcolor);//标注原点
$yellow=imagecolorallocate($im,244,244,0);//曲线的颜色
//开始绘制曲线
for($x=20,$n=1;$x<=900;$x=$x+0.01,$n++){
$y=sin((20-$x)*0.02)*100+300;/*根据实际情况确定该函数的振幅,相位,周期 问题:按照三角函数的坐标轴平移的规律,函数表达式为: $y=sin(($x-20)*0.02)*100+300,图像显示的是移动了半个周期的图像*/
//$ytg=tan((20-$x)*0.02)*100+300;
if($y==400||$y==300||$y==200){/*问题:该三角函数的最值是400,200,要求在出现最值以及$y=300的时候开始标记刻度值和刻度,但是只能出现一个*/
// $xnew=20-50*asin(($y-300)/100);
$xvalue=imagestring($im,2,$x,302,$n,$xcolor);//刻度对应的值
$xke=imageline($im,$x,0,$x,310,$yellow);//x刻度
}
//imagesetpixel($im,$x,$ytg,$xcolor);
imagesetpixel($im,$x,$y,$yellow);//
}
header("Content-type:image/jpeg");
imagejpeg($im);
imagedestroy($im);
?>
[ 本帖最后由 dongxin1390008 于 2007-1-7 10:29 编辑 ]
$w=970;
$h=600;//定义画布长宽
$im=imagecreate($w,$h);
$bgcolor=imagecolorallocate($im,0,0,0);//定义背景颜色
$xcolor=imagecolorallocate($im,255,255,255);//定义坐标轴的颜色
$yarray=imageline($im,10,10,20,0,$xcolor);
$yarray1=imageline($im,20,0,30,10,$xcolor);//y轴方向
$ybiaozhi=imagestring($im,5,25,15,"Y",$xcolor);//y
$xarray=imageline($im,940,290,950,300,$xcolor);
$xarray1=imageline($im,940,310,950,300,$xcolor);//x轴方向
$xbiaozhi=imagestring($im,5,935,310,"X",$xcolor);//x
$x=imageline($im,0,300,950,300,$xcolor);//X轴
$y=imageline($im,20,0,20,600,$xcolor);//Y轴
imagestring($im,2,10,285,0,$xcolor);//标注原点
$yellow=imagecolorallocate($im,244,244,0);//曲线的颜色
//开始绘制曲线
for($x=20,$n=1;$x<=900;$x=$x+0.01,$n++){
$y=sin((20-$x)*0.02)*100+300;/*根据实际情况确定该函数的振幅,相位,周期 问题:按照三角函数的坐标轴平移的规律,函数表达式为: $y=sin(($x-20)*0.02)*100+300,图像显示的是移动了半个周期的图像*/
//$ytg=tan((20-$x)*0.02)*100+300;
if($y==400||$y==300||$y==200){/*问题:该三角函数的最值是400,200,要求在出现最值以及$y=300的时候开始标记刻度值和刻度,但是只能出现一个*/
// $xnew=20-50*asin(($y-300)/100);
$xvalue=imagestring($im,2,$x,302,$n,$xcolor);//刻度对应的值
$xke=imageline($im,$x,0,$x,310,$yellow);//x刻度
}
//imagesetpixel($im,$x,$ytg,$xcolor);
imagesetpixel($im,$x,$y,$yellow);//
}
header("Content-type:image/jpeg");
imagejpeg($im);
imagedestroy($im);
?>
[ 本帖最后由 dongxin1390008 于 2007-1-7 10:29 编辑 ]
作者: dongxin1390008 发布时间: 2007-01-07



作者: �����i�i 发布时间: 2007-01-07
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28