在屏幕上旋转矩形
Rotate rectangle on screen
我正在使用GDI+尝试在屏幕上绘制一个矩形并将其旋转45度
这是我正在使用的代码
Pen RedPen(Color(255, 255, 0, 0), 4);
HDC screenDC = GetDC(NULL);
Graphics graphics(screenDC);
graphics.RotateTransform(45);
graphics.DrawRectangle(&RedPen, 150, 150, 50, 50);
矩形会旋转,但它的位置在圆中移动得越多
我很确定这是因为我在旋转屏幕的中心,而不是矩形的中心
那么我该如何围绕矩形的中心旋转它呢?
问题是它没有像您注意到的那样围绕矩形的中心旋转。所以你需要在物体旋转后平移它。
e->Graphics->RotateTransform(degrees);
e->Graphics->TranslateTransform(posX, posY, MatrixOrder::Append);
e->Graphics->DrawRectangle(gcnew Pen( Color::Blue,3.0f ), -width / 2, -height / 2, width, height);
度是要旋转矩形的量posX和posY是要在屏幕中绘制的位置。
此外,您还需要确保通过MatrixOrder::Append,否则Transform的顺序可能会更改,这将在旋转之前应用Translation(给您带来与您所看到的类似的效果)
相关文章:
- 与互斥锁相比,旋转锁可以保证上下文切换
- 绘制旋转的三角形
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- 旋转模型矩阵时的形状失真
- 四边形的 2D 旋转
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- 使用 SFML 和 C++ 将 Pixel 打印到屏幕上
- 垂直方向的 Gtk3+ 旋转按钮 (c/c++)
- 发布旋转矩阵(openGL/glm)
- 顺时针迭代旋转 3 位数字
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- 形状对象的旋转和缩放不正确C++
- 如何在 OpenSceneGraph 中缩放/旋转/移动资产
- Winapi:屏幕截图未显示在窗口中
- 如何在快板的屏幕中显示子位图的绘制?
- SFML 向下移动时如何围绕屏幕中心旋转?
- OpenGL 在屏幕上渲染之前旋转对象以设置其正确的表面
- 在屏幕上旋转矩形
- 旋转相机时,DirectX 基元不会在屏幕上移动
- 检测Qt问题中的屏幕旋转