我正在向我的2D绘图程序添加“鼠标旋转”。通过基本计算从原始鼠标点击到鼠标当前位置的旋转角度,我已经掌握了所有代码的工作原理。2D图像旋转,几个问题
我还绘制了一个透明的矩形,它可以旋转,而不是实际上在每个鼠标移动事件上旋转图像。
现在,我的问题是这个矩形的绘制。我从图像的x/y位置绘制矩形,其宽度/高度就是图像报告的内容。
然而,后旋转矩形图像,它的新高度和宽度要大得多,因为这两个截图应该有助于澄清:During rotation,并after rotating then rotating again - 小“处理”显示在图片X/Y /宽度/高度延伸到
在第二个屏幕截图中,由于旋转,图像被填充,带有空格(很难用文本描述!)。例如。 200x100的图像在旋转后最终可能会达到150x150(大约),这在第二次调整大小时看起来有点奇怪。
有没有人有一个想法如何解决这个问题?
嗨,谢谢,我在想这就是做这件事的方法。我保留原始图像,并基于所有缩放/旋转。这导致了另一个问题...我也有缩放代码,但不知道如何将它与旋转代码结合起来。每个Image类将保持实例旋转/缩放变量,但是我应该先旋转还是重新缩放? – 2010-01-26 01:00:59
另一个问题是我基本上使用wxWidgets的图像旋转代码 - 我的图像角落的“重新调整手柄”是从GetWidth/Height返回的值绘制的。现在我应该在旋转后跟踪(轮廓)矩形的x/y /宽度/高度,并使用这些值来确定手柄的位置? – 2010-01-26 01:04:26
无论您是先旋转还是缩放,缩放是否均匀以及缩放和旋转的中心是否相同,都无关紧要。但是,如果以不同的比例拉伸X和Y,或者如果缩放的起点与旋转不同,则顺序很重要 – comingstorm 2010-01-26 07:52:14