我有一个C应用程序,已将我的image(gif)对象加载到屏幕上。现在,我希望Image对象与指针一起在一个轴上旋转。

意味着无论我将指针移到屏幕上的任何位置,我的图像都应该从固定点旋转...我该怎么做?

我看过类似的公式

newx = cos(angle) * oldx - sin(angle) * oldy

newy = sin(angle) * oldx + cos(angle) * oldy


但是它也输入角度..但是我没有角度...我有指针坐标...我如何使对象根据鼠标指针移动?

最佳答案

说真的...您在中学学习了三角学,对吗?

angle = arctan((pointerY - centerY) / (pointerX - centerX))


在C中:

// obtain pointerX and pointerY; calculate centerX as width of the image / 2,
// centerY as heigth of the image / 2
double angle = atan2(pointerY - centerY, pointerX - centerX);

double newX = cos(angle) * oldX - sin(angle) * oldY
double newY = sin(angle) * oldX + cos(angle) * oldY

10-07 19:30
查看更多