首页 > 代码库 > 画箭头
画箭头
$Xexit=trim($exit[0]); //始点x坐标
$Yexit=trim($exit[1]); //始点Y坐标
$Xenter=trim($enter[0]); //终点X坐标
$Yenter=trim($enter[1]); //终点Y坐标
imageline($im,$Xexit,$Yexit,$Xenter,$Yenter,$green); //画根线
if($Yexit == $Yenter)
{
if($Xexit < $Xenter) $included = 0;
else $included = 180;
}
else if($Xexit == $Xenter)
{
if($Yexit < $Yenter) $included = 270;
else $included = 90;
}
else
{
$slope=($Yenter - $Yexit)/($Xenter - $Xexit);
$included=atan($slope)*(180/$PI);
if($Yexit < $Yenter) $included += 180; //终点在下,可以确定这时角度应该等于180+斜率.
}
// 确定那跟直线的角度.
//因为斜率只能是0-180度.所以就一点点的判断了.
$Xpoint = (int)(($Xenter*7 + $Xexit)/8); //找出直线的某个位置用来画箭头用 X.坐标
$Ypoint = (int)(($Yenter*7 + $Yexit)/8); //找出直线的某个位置用来画箭头用 Y.坐标
$XpointUP = $Xpoint + (int)(cos($included + 45)*10); //把那跟直线旋转45度后的X坐标 ,10是那个箭头的长度.
$YpointUP = $Ypoint + (int)(sin($included + 45 )*10); //把那跟直线旋转45度后的Y坐标
ImageLine($im,$XpointUP,$YpointUP,$Xpoint,$Ypoint,$green); //画线.....
画出来的线很乱,没有旋转45度后的效果.
我这个是什么地方出错了啊????
谢谢大家指点
看图b,可以看到还是我的位置没有确定对..
是坐标系的转换问题引起的吗??
数学中有 1 , 2 ,3 ,4象限,对应的cos和sin会有正负,而计算机中的这个是以角为基准.不断增大的.就象是第一象限以x轴为中线画的对称图形,向下递增.
画箭头
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。