[英]Texture 2D Rotating to a point
无论如何,我可以将2D纹理图像旋转到一个点吗? 我尝试了glRotate函数,它旋转并移动对象。 我正在寻找通过不移动纹理将其旋转到一个点的功能/方式。
这是我的绘画代码:
static void Draw2DTexture(int textureid, float x1, float y1, float width, float height, Color color)
{
float x2 = x1 + width;
float y2 = y1 + height;
RectangleF rect;
rect = new RectangleF(0, 0, 1, 1);
GL.PushAttrib(AttribMask.ColorBufferBit);
GL.Color3(color);
GL.BindTexture(TextureTarget.Texture2D, textureid);
GL.Enable(EnableCap.Texture2D);
GL.Disable(EnableCap.DepthTest);
GL.Rotate(35, 0f, 0f, 1f);
GL.Begin(BeginMode.Quads);
GL.TexCoord2(rect.Right, rect.Bottom); GL.Vertex2(x2, y2);
GL.TexCoord2(rect.Right, rect.Top); GL.Vertex2(x2, y1);
GL.TexCoord2(rect.Left, rect.Top); GL.Vertex2(x1, y1);
GL.TexCoord2(rect.Left, rect.Bottom); GL.Vertex2(x1, y2);
GL.End();
GL.Enable(EnableCap.DepthTest);
GL.PopAttrib();
}
Draw2DTexture(5, 300f, 300f, 256f, 512f, Color.White);
“它旋转并移动对象”
我不确定旋转到什么程度,但是您在这里提到的问题是关于正确的旋转中心。
每当将旋转应用于对象时,它都会围绕原点旋转它 。 很好,但是当您的对象不在原点中心时会发生什么? 您需要将对象平移到原点,旋转它,然后将其平移回原来的位置。
这将旋转到位。
围绕一个点旋转呢? 而不是通过旋转对象的位置平移到原点,而是通过要旋转的点平移
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.