画箭头
$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轴为中线画的对称图形,向下递增.