php正弦函数
❶ php算三角函数
cos — 余弦
cosh — 双曲余弦
sin — 正弦
sinh — 双曲正弦
tan — 正切
tanh — 双曲正切
acos — 反余弦
acosh — 反双曲余弦
asin — 反正弦
asinh — 反双曲正弦
atan2 — 两个参数的反正切
atan — 反正切
atanh — 反双曲正切
❷ PHP的常用系统函数有哪些
PHP自带了大量的系统函数,使用这些函数可以完成大部分的任务。常用的有数学运算函数和日期时间函数。
1.数学运算函数:
数学运算是程序中最常执行的功能之一,PHP提供了很多系统函数实现运算功能,无须安装、编译和配置便可以直接使用。下表列出了常用的数学函数:
函数名称
功能描述
函数名称
功能描述
abs()
绝对值
is_finite()
判断是否为有限值
acos()
反余弦
is_infinite()
判断是否为无限值
acosh()
反双曲余弦
is_nan()
判断是否为合法数值
asin()
反正弦
lcg_value()
组合线性同余发生器
asinh()
反双曲正弦
log10()
以10为底的对数
atan2()
两个参数的反正切
log()
自然对数
atan()
反正切
max()
最大值
atanh()
反双曲正切
min()
最小值
base_convert()
在任意进制之间转换数字
mt_getrandmax()
显示随机数的最大可能值
bindec()
二进制转换为十进制
mt_rand()
生成更好的随机数
ceil()
进一法取整
mt_sran()
播下一个更好随机数种子
cos()
余弦
octdec()
八进制转换为十进制
cosh()
双曲余弦
pi()
圆周率
decbin()
十进制转换为二进制
pow()
指数表达式
dechex()
十进制转换为十六进制
rad2deg()
将弧度转换为相应的角度值
decoct()
十进制转换为八进制
rand()
产生一个随机数
deg2rad()
将角度转换为弧度
round()
对浮点数四舍五入
exp()
计算e的指数
sin()
正弦
floor()
舍去法取整
sinh()
双曲正弦
fmod()
返回除法的浮点数余数
sqrt()
平方根
getrandmax()
显示随机数最大的可能值
srand()
播下随机数发生器种子
hexdec()
十六进制转换为十进制
tan()
正切
hypot()
计算直角三角形的斜边长度
tanh()
双曲正切
注意:这些数学函数仅能处理计算机中integer和float范围的值。
示例:产生随机密码的的函数
function CreatePassword($length=6) //生成密码函数,默认6位
{
$dictionary=””; //密码字典
$maxChar=strlen($dictionary); //获取字典长度
$password=””;
for($i=0; $i<$length; $i++) //随机生成每一位
{
$password.=$dictionary[rand(0, $maxChar)]; //产生随机数,再从字典取字母
}
return $password;
}
2.日期和时间运算:
PHP提供了丰富的日期和时间方面运算的函数。
1)UNIX时间戳:
时间戳(Timestamp)是源于UNIX系统的时间表示方法,是指从1970年1月1日(00:00:00GMT)起到现在所经过的秒数,因此也称为UNIX时间戳。
在PHP中使用时间戳的最简单方式就是调用time()函数,time()函数可以根据当前时间返回一个时间戳的表示法。示例:
echo “当前时间戳为:”.time();
2)日期函数:
PHP提供的一些常用的日期函数。
①date()函数:
date()函数用于格式化一个本地日期和时间。语法格式为:
string date(string $format [, int $timestamp])
返回将整数$timestamp按照$format给定格式而产生的字符串。其中,$timestamp参数是可选的,如果没有给出时间戳,则使用本地当前时间,即time()。
下表列出了$format格式化字符串参数的说明:
值
说明
返回值
D
月份中的第几天,有前导零的2位数字
01到31
D
星期中的第几天,文本表示,3个字母
Mon到Sun
J
月份中的第几天,没有前导零
1到31
L
L的小写字母,表示星期几的完整文本格式
Sunday到Saturday
N
数字表示的星期中的第几天
1(表示星期一)到7(表示星期天)
S
每月天数后面的英文后缀,2个字符
st,nd,rd或th。可以和j一起用
W
星期中的第几天,数字表示
0(表示星期天)到6(表示星期六)
Z
年份中的第几天
0到366
W
年份中的第几周,每周从星期一开始
例如:42(当年的第42周)
F
月份,完整的文本格式,例如January
January到December
M
数字表示的月份,有前导零
01到12
M
3个字母缩写表示的月份
Jan到Dec
N
数字表示的月份,没有前导零
1到12
t
给定月份所应有的天数
28到31
L
是否为闰年
如果是闰年为1,否则为0
o
年份数字
例如:2016
Y
4位数字完整表示的年份
例如:2016
y
2位数字表示的年份
例如:16
a
小写的上午和下午值
am或pm
A
大写的上午和下午值
AM或PM
g
小时,12小时格式,没有前导零
1到12
G
小时,24小时格式,没有前导零
0到23
h
小时,12小时格式,有前导零
01到12
H
小时,24小时格式,有前导零
00到23
i
有前导零的分钟数
00到59
s
秒数,有前导零
00到59
e
时区标识
例如:UTC,GMT,Atlantic/Azores
I
是否为夏令时
如果是夏令时为1,否则为0
O
与格林威治时间相差的小时数
例如:+0200
Z
时差偏移量的秒数
-43200到43200
c
ISO8601格式的日期
2011-05-12T15:19:21+00:00
r
RFC822格式的日期
例如:Thu, 21 Dec 2011 06:07:08 +0200
U
从January 1 1970 00:00:00开始至今的秒数
与time()函数相同
示例:
$today=date(“m/d/y”); //结果为:07/19/12
$today=date(“F j, Y, g:i a”); //结果为:July 19, 2012, 9:07 am
$today=date(“Y年n月j日”); //结果为:2012年7月19日
$today=date(“Y-m-d H:i:s”); //结果为:2012-07-19 09:07:32
$today=date(“D M j G:i:s T Y”); //结果为:Thu Jul 19 9:07:32 CST 2012
$today=date(‘i t i s t h e jS d a y’); //结果为:07 31 07 32 31 09 Asia/Shanghai 19th 19 am 12
$today=date(‘\i\t \i\s \t\h\e jS \d\a\y’); //结果为:it is the 19th day
$today=date(‘H:m:s \m \i\s\ \m\o \h’); //结果为:09:07:32 m is month
②gmdate()函数:
gmdate()函数实现与date()函数相同的功能,不同的是gmdate()函数返回的时间是格林威治标准时间(GMT)。语法格式为:
string gmdate(string $format [, int $timestamp])
③getdate()函数:
getdate()函数用于获取指定的日期和时间信息。语法格式为:
array getdate([int $timestamp])
如果没有指定时间戳$timestamp,则使用系统当前的本地时间。getdate()函数返回一个数组,数组中的每个元素代表日期和时间中的特定组成部分。下表列出了返回数组中键名的说明:
键名
说明
返回值例子
seconds
秒的数字表示
0到59
minutes
分钟的数字表示
0到59
hours
小时的数字表示
0到23
mday
月份中的第几天的数字表示
1到31
wday
星期中的第几天的数字表示
0(表示星期天)到6(表示星期六)
mon
月份的数字表示
1到12
year
4位数字表示的完整年份
例如:2016
yday
一年中的第几天的数字表示
0到365
weekday
星期几的完整文本表示
Sunday到Saturday
month
月份的完整的文本表示
January到December
0
自从UNIX纪元开始至今的秒数
和time()的返回值类似,是一个时间戳
示例:
<?php
$today=getdate();
print_r($today);
printf(“今天是%s年%s月%s日 星期%s \n”, $today[“year”], $today[“mon”], $today[“mday”], $today[“wday”]);
printf(“现在时间是%s时%s分%s秒”, $today[“hours”], $today[“minutes”], $today[“seconds”]);
?>
执行后的结果为:
Arrar
(
[seconds]=>15
[minutes]=>37
[hours]=>9
[mday]=>19
[wday]=>4
[mon]=>7
[year]=>2016
[yday]=>200
[weekday]=>Thursday
[month]=>July
[0]=>1342661835
)
今天是2016年7月19日 星期4
现在时间是 9时37分15秒
④checkdate()函数:
checkdate()函数用于检查一个日期是否有效,有效则返回true,否则返回false。语法格式为:
bool checkdate(int $month, int $day, int $year)
当满足如下条件时,checkdate()函数将认为是一个有效的日期:
·$year的值是从1到32767
·$month的值是从1到12
·$day的值在给定的$month所应该具有的天数范围之内,包括闰年情况
示例:
echo checkdate(2,29,2012)?”有效”:”无效”;
2)时间函数:
①time()函数:
time()函数使用方法非常简单,没有参数调用后返回当前日期和时间的UNIX时间戳。语法格式为:
int time(void)
示例:
$next50day=time()+(50*24*60*60); //计算50天以后的日期
②mktime()函数:
mktime()函数的作用与time()函数相同,都可以返回一个时间戳表示的时间。不同的是,在mktime()函数中可以指定具体的日期和时间。语法格式为:
int mktime([int $hour],[int $minute],[int $second],[int $month], [int $day],[int $year])
上述参数列表从右向左顺序省略,任何省略的参数会被设置为本地日期和时间的当前值。如果指定的时间无法表示,则返回false。mktime()函数在做日期计算和验证方面很有用。示例:
$day1=mktime(0,0,0,12,25,2012);
$day2=mktime(0,0,0,10,1,2012);
$days=($day1-$day2)/(24*60*60); //根据时间戳计算出相差的天数
③strtotime()函数:
strtotime()函数用于将可阅读的英文日期/时间字符串转换成UNIX时间戳。语法格式:
int strtotime(string $time[, int $now])
其中,$time参数表示要被转换的字符串,$now表示计算返回值的时间戳。如果没有提供$now参数,将使用系统的当前时间。strtotime()函数成功时返回时间戳,否则返回false。
④microtime()函数:
microtime()函数调用后将返回当前UNIX时间戳和微秒数。语法格式为:
mixed microtime([bool $get_as_float])
这里的可选参数$get_as_float是一个布尔值,如果为true将返回一个浮点数。默认不带参数时将以“msec sec”格式返回一个字符串,其中msec是微秒部分,sec是UNIX时间戳。
❸ php如何生成加粗或者斜体的文字样式图片
加粗或者斜体的文字可以用php的函数控制.我想你是想生成验证码图片是吗?
如果是想生成验证么图片有几个函数可以考虑
imagecreate($length,$height)创建图片.参数是图片的宽度和高度
imagecolorallocate($image,$r,$g,$b)设置背景色,r b g就是图片的三色rgb参数.这个可以由传入0-255的随机数决定随机的背景色.还可以生成字体色
imagettftext($_image,$fontSize,mt_rand(-40,70),$codeNX,$fontSize*1.5,$_color,$ttf,$code[$i]);写入随机的文字,这里要一个字一个字写.所以这个函数要循环调用.
网络了一下 找到了一个类...如下
<?php
/**
*安全验证码
*
*安全的验证码要:验证码文字扭曲、旋转,使用不同字体,添加干扰码。
*如果用中文做验证码(我这里不是哦,有兴趣你来改成用中文的),安全度会更好些,但验证码扭曲和旋转是王道,用了字体也算是已经给字体扭曲了,我就不再去给他添一只扭曲的足了。
*可配置的属性都是一些简单直观的变量,我就不用弄一堆的setter/getter了
*
*@author流水孟春<cmpan(at)qq.com>
*@rightNEWBSD
*@linkhttp://labs.yulans.cn/YL_Security_Secoder
*@linkhttp://wiki.yulans.cn/docs/yl/security/secoder
*/
classYL_Security_Secoder{
/**
*验证码的session的下标
*
*@varstring
*/
publicstatic$seKey='sid.sekey.ylans.cn';
publicstatic$expire=3000;//验证码过期时间(s)
/**
*验证码中使用的字符,01IO容易混淆,建议不用
*
*@varstring
*/
publicstatic$codeSet='346789ABCDEFGHJKLMNPQRTUVWXY';
publicstatic$fontSize=25;//验证码字体大小(px)
publicstatic$useCurve=true;//是否画混淆曲线
publicstatic$useNoise=true;//是否添加杂点
publicstatic$imageH=0;//验证码图片宽
publicstatic$imageL=0;//验证码图片长
publicstatic$length=4;//验证码位数
publicstatic$bg=array(243,251,254);//背景
protectedstatic$_image=null;//验证码图片实例
protectedstatic$_color=null;//验证码字体颜色
/**
*输出验证码并把验证码的值保存的session中
*验证码保存到session的格式为:$_SESSION[self::$seKey]=array('code'=>'验证码值','time'=>'验证码创建时间');
*/
publicstaticfunctionentry(){
//图片宽(px)
self::$imageL||self::$imageL=self::$length*self::$fontSize*1.5+self::$fontSize*1.5;
//图片高(px)
self::$imageH||self::$imageH=self::$fontSize*2;
//建立一幅self::$imageLxself::$imageH的图像
self::$_image=imagecreate(self::$imageL,self::$imageH);
//设置背景
imagecolorallocate(self::$_image,self::$bg[0],self::$bg[1],self::$bg[2]);
//验证码字体随机颜色
self::$_color=imagecolorallocate(self::$_image,mt_rand(1,120),mt_rand(1,120),mt_rand(1,120));
//验证码使用随机字体
$ttf=dirname(__FILE__).'/ttfs/'.mt_rand(1,20).'.ttf';
if(self::$useNoise){
//绘杂点
self::_writeNoise();
}
if(self::$useCurve){
//绘干扰线
self::_writeCurve();
}
//绘验证码
$code=array();//验证码
$codeNX=0;//验证码第N个字符的左边距
for($i=0;$i<self::$length;$i++){
$code[$i]=self::$codeSet[mt_rand(0,27)];
$codeNX+=mt_rand(self::$fontSize*1.2,self::$fontSize*1.6);
//写一个验证码字符
imagettftext(self::$_image,self::$fontSize,mt_rand(-40,70),$codeNX,self::$fontSize*1.5,self::$_color,$ttf,$code[$i]);
}
//保存验证码
isset($_SESSION)||session_start();
$_SESSION[self::$seKey]['code']=join('',$code);//把校验码保存到session
$_SESSION[self::$seKey]['time']=time();//验证码创建时间
header('Cache-Control:private,max-age=0,no-store,no-cache,must-revalidate');
header('Cache-Control:post-check=0,pre-check=0',false);
header('Pragma:no-cache');
header("content-type:image/png");
//输出图像
imagepng(self::$_image);
imagedestroy(self::$_image);
}
/**
*画一条由两条连在一起构成的随机正弦函数曲线作干扰线(你可以改成更帅的曲线函数)
*
*高中的数学公式咋都忘了涅,写出来
* 正弦型函数解析式:y=Asin(ωx+φ)+b
*各常数值对函数图像的影响:
*A:决定峰值(即纵向拉伸压缩的倍数)
*b:表示波形在Y轴的位置关系或纵向移动距离(上加下减)
*φ:决定波形与X轴位置关系或横向移动距离(左加右减)
*ω:决定周期(最小正周期T=2π/∣ω∣)
*
*/
protectedstaticfunction_writeCurve(){
$A=mt_rand(1,self::$imageH/2);//振幅
$b=mt_rand(-self::$imageH/4,self::$imageH/4);//Y轴方向偏移量
$f=mt_rand(-self::$imageH/4,self::$imageH/4);//X轴方向偏移量
$T=mt_rand(self::$imageH*1.5,self::$imageL*2);//周期
$w=(2*M_PI)/$T;
$px1=0;//曲线横坐标起始位置
$px2=mt_rand(self::$imageL/2,self::$imageL*0.667);//曲线横坐标结束位置
for($px=$px1;$px<=$px2;$px=$px+0.9){
if($w!=0){
$py=$A*sin($w*$px+$f)+$b+self::$imageH/2;//y=Asin(ωx+φ)+b
$i=(int)((self::$fontSize-6)/4);
while($i>0){
imagesetpixel(self::$_image,$px+$i,$py+$i,self::$_color);//这里画像素点比imagettftext和imagestring性能要好很多
$i--;
}
}
}
$A=mt_rand(1,self::$imageH/2);//振幅
$f=mt_rand(-self::$imageH/4,self::$imageH/4);//X轴方向偏移量
$T=mt_rand(self::$imageH*1.5,self::$imageL*2);//周期
$w=(2*M_PI)/$T;
$b=$py-$A*sin($w*$px+$f)-self::$imageH/2;
$px1=$px2;
$px2=self::$imageL;
for($px=$px1;$px<=$px2;$px=$px+0.9){
if($w!=0){
$py=$A*sin($w*$px+$f)+$b+self::$imageH/2;//y=Asin(ωx+φ)+b
$i=(int)((self::$fontSize-8)/4);
while($i>0){
imagesetpixel(self::$_image,$px+$i,$py+$i,self::$_color);//这里(while)循环画像素点比imagettftext和imagestring用字体大小一次画出(不用这while循环)性能要好很多
$i--;
}
}
}
}
/**
*画杂点
*往图片上写不同颜色的字母或数字
*/
protectedstaticfunction_writeNoise(){
for($i=0;$i<10;$i++){
//杂点颜色
$noiseColor=imagecolorallocate(
self::$_image,
mt_rand(150,225),
mt_rand(150,225),
mt_rand(150,225)
);
for($j=0;$j<5;$j++){
//绘杂点
imagestring(
self::$_image,
5,
mt_rand(-10,self::$imageL),
mt_rand(-10,self::$imageH),
self::$codeSet[mt_rand(0,27)],//杂点文本为随机的字母或数字
$noiseColor
);
}
}
}
/**
*验证验证码是否正确
*
*@paramstring$code用户验证码
*@returnbool用户验证码是否正确
*/
publicstaticfunctioncheck($code){
isset($_SESSION)||session_start();
//验证码不能为空
if(empty($code)||empty($_SESSION[self::$seKey])){
returnfalse;
}
//session过期
if(time()-$_SESSION[self::$seKey]['time']>self::$expire){
unset($_SESSION[self::$seKey]);
returnfalse;
}
if($code==$_SESSION[self::$seKey]['code']){
returntrue;
}
returnfalse;
}
}
//useage
/*
YL_Security_Secoder::$useNoise=false;//要更安全的话改成true
YL_Security_Secoder::$useCurve=true;
YL_Security_Secoder::entry();
*/
/*
//验证验证码
if(!YL_Security_Secoder::check(@$_POST['secode'])){
print'errorsecode';
}
*/这是效果
❹ 如何用python表示三角函数
Python编码下面的三角函数包括以下种类:acos(x)//返回x的反余弦弧度值。asin(x)//返回x的反正弦弧度值。atan(x)//返回x的反正切弧度值。atan2(y,x)//返回给定的X及Y坐标值的反正切值。cos(x)//返回x的弧度的余弦值。hypot(x,y
描述
sin()返回的x弧度的正弦值。
语法
以下是sin()方法的语法:
importmath
math.sin(x)
注意:sin()是不能直接访问的,需要导入math模块,然后通过math静态对象调用该方法。
参数
x--一个数值。
返回值
返回的x弧度的正弦值,数值在-1到1之间。
实例
以下展示了使用sin()方法的实例:
#!/usr/bin/python
import math
print "sin(3) : ", math.sin(3)
print "sin(-3) : ", math.sin(-3)
print "sin(0) : ", math.sin(0)
print "sin(math.pi) : ", math.sin(math.pi)
print "sin(math.pi/2) : ", math.sin(math.pi/2)
以上实例运行后输出结果为:
sin(3) : 0.14112000806
sin(-3) : -0.14112000806
sin(0) : 0.0
sin(math.pi) : 1.22460635382e-16
sin(math.pi/2) : 1
总结
以上就是本文关于Python入门之三角函数sin()函数实例详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:python正则表达式re之compile函数解析、Python中enumerate函数代码解析、简单了解Python中的几种函数等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!
❺ 易语言 php代码改写
地图经纬度计算 ????
deg2rad将角度转换成弧度,请将角度乘以 #pi / 180。为了将弧度转换成角度,请将弧度乘以 180 / #pi。如果参数值大于等于 2 的 63 次方,或者小于等于 -2 的 63 次方,将导致计算溢出。
.版本2
.程序集窗口程序集_启动窗口
.程序集变量地球半径,整数型
.子程序_按钮1_被单击
输出调试文本(distanceBetween(1,2,3,4))
.子程序distanceBetween,整数型
.参数fP1Lat,双精度小数型
.参数fP1Lon,双精度小数型
.参数fP2Lat,双精度小数型
.参数fP2Lon,双精度小数型
.局部变量fRadLat1,双精度小数型
.局部变量fRadLon1,双精度小数型
.局部变量fRadLon2,双精度小数型
.局部变量fRadLat2,双精度小数型
.局部变量fD1,双精度小数型
.局部变量fD2,双精度小数型
.局部变量fP,双精度小数型
地球半径=6378137
fRadLon1=deg2rad(fP1Lon)
fRadLon2=deg2rad(fP2Lon)
fRadLat1=deg2rad(fP1Lat)
fRadLat2=deg2rad(fP2Lat)
fD1=取绝对值(fRadLat1-fRadLat2)
fD2=取绝对值(fRadLon1-fRadLon2)
fP=求次方(求正弦(fD1÷2),2)+求余弦(fRadLat1)×求余弦(fRadLat2)×求次方(求正弦(fD2÷2),2)
返回(到整数(地球半径×2×asin(求平方根(fP))+0.5))
.子程序deg2rad,双精度小数型
.参数参数,双精度小数型
.局部变量a,双精度小数型
a=参数×#pi÷180
返回(a)
.子程序asin,双精度小数型,公开,返回弧度值
.参数正弦值,双精度小数型,,-1到1,否则返回0
.如果真(正弦值<-1或正弦值>1)
返回(0)
.如果真结束
返回(求反正切(正弦值÷求平方根(1-正弦值×正弦值)))
.子程序求反正弦值,双精度小数型,公开,返回角度值
.参数正弦值,双精度小数型,,-1到1,否则返回0
.如果真(正弦值<-1或正弦值>1)
返回(0)
.如果真结束
返回(求反正切(正弦值÷求平方根(1-正弦值×正弦值))×180÷#pi)