大家好,想请教鼠标旋转图片时,那个角度怎么算啊 大家好,想请教鼠标旋转图片时,那个角度怎么算啊,假定现在有这个三角形,三个点分别为图片的中心点A,鼠标按下时的点B,鼠标当前的点C,这三个点,可以算出一个小于等于180度的角度,但是大于180度怎么办啊,指教啊,最好有例子代码,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 既然是以中心点A为基点进行旋转,那就算出A->B角度j1,A->C角度j2,j2-j1就是对原始图片的旋转角度,范围都是0~360度。double GetAngle(int nAX, int nAY, int nBX, int nBY){ double dX = nBX - nAX; double dY = nBY - nAY; double dDist = sqrt(dX*dX+dY*dY); if(dDist == 0.0) { return 0.0; } double dAngle = acos(fabs(dX)/dDist); if( (dX<=0) && (dY>=0) ) { dAngle = PI-dAngle; } else if( (dX<=0) && (dY<=0) ) { dAngle = PI+dAngle; } else if( (dX>=0) && (dY<=0) ) { dAngle = 2*PI-dAngle; } return dAngle;} 用GetForegroundWindow可以获得当前活动窗口的句柄,那如何判断这个窗口是不是全屏的? C++连接数据库 关于线程同步的问题 CxImage 关于显示到HDC问题,请高手帮忙! 高手指点一下这个均衡器编程的思路 recvfrom函数的困惑 关于fputws写中文到文件的问题 DLL文件怎么调试它? 求助一个简单问题! 这么简单的程序也会出错,谁能帮我? 谁知道:如何获取主板的芯片组? 请教个16进制批量替换的问题
double GetAngle(int nAX, int nAY, int nBX, int nBY)
{
double dX = nBX - nAX;
double dY = nBY - nAY;
double dDist = sqrt(dX*dX+dY*dY);
if(dDist == 0.0)
{
return 0.0;
}
double dAngle = acos(fabs(dX)/dDist);
if( (dX<=0) && (dY>=0) )
{
dAngle = PI-dAngle;
}
else if( (dX<=0) && (dY<=0) )
{
dAngle = PI+dAngle;
}
else if( (dX>=0) && (dY<=0) )
{
dAngle = 2*PI-dAngle;
} return dAngle;
}