我有轮换麻烦.我想要做的是:
我有点卡在第三步.
我设法使用以下代码旋转图像:
cv::Mat M(2, 3, CV_32FC1);
cv::Point2f center((float)dst_img.rows / 2.0f, (float)dst_img.cols / 2.0f);
M = cv::getRotationMatrix2D(center, rotateAngle, 1.0);
cv::warpAffine(dst_img, rotated, M, cv::Size(rotated.cols, rotated.rows));
Run Code Online (Sandbox Code Playgroud)
我尝试用这段代码回转点:
float xp = r.x * std::cos( PI * (-rotateAngle) / 180 ) - r.y * sin(PI * (rotateAngle) / 180);
float yp = r.x * sin(PI * (-rotateAngle) / 180) + r.y * cos(PI * (rotateAngle) / 180);
Run Code Online (Sandbox Code Playgroud)
这不是为了工作,但这些点在图像上不能很好地回归.有一个偏移.
谢谢您的帮助
我在OpenGL和C++编程.我知道1行(对角线)上的2个点,并希望围绕该对角线旋转对象.我该怎么做呢?我知道如何使用glrotatef它围绕x,y或z轴旋转,但我不确定这一点.
我正在制作一个"Body"类,它将一堆2D形状组合在一起,形成一个可移动的可旋转体.
我需要知道的是我如何旋转每个单独的形状,使其看起来像整个身体旋转,而不是每个形状做它自己围绕它的中心旋转.我不能只将每个形状旋转中心更改为同一点,因为这也会导致它们的放置受到影响.
因此,我需要找到某种方程式,使用身体中心重新定位和重新旋转身体中的每个个体形状,以保持身体形状不变形?
我怎样才能做到这一点?