2015-02-06 116 views
0

我一直在浏览互联网一段时间,我似乎无法找到我一直在寻找的答案。所以我打算对位图做的事情是我想把它们绘制到窗口上,并且可以随时调整它们的大小。任何帮助,将不胜感激!SharpDX位图

+0

你为什么要考虑SharpDX(Direct2D的?)? WPF或Windows Phone/Windows App都具有绘制任意路径的技术,特别是在更改大小时,使用起来会更简单。 – NextInLine 2015-02-17 23:48:35

+0

因为我正在开发游戏引擎,而不是普通的桌面应用程序或应用程序。 – Karutoh 2015-02-18 04:12:13

回答

1

对于那些不了解的人,可以使用矩阵来翻译,调整大小和旋转。以下是如何做到这一点。在绘制实际对象之前,请务必更改RenderTarget的Matrix。

Vector2

RenderTarget.Transform

RenderTarget.DrawBitmap

Matrix.Transformation2D

Vector2 center = new Vector2(bitmap.Size.Width/2, bitmap.Size.Height/2); 
renderTarget.Transform = Matrix.Transformation2D(center, 0f, new Vector2(width/bitmap.Size.Width, height/bitmap.Size.Height), center, MathHelper.ToRads(rotation), new Vector2(x - center.X, y - center.Y)); 
renderTarget.DrawBitmap(bitmap, 1f, BitmapInterpolationMode.NearestNeighbor); 
renderTarget.Transform = Matrix.Transformation2D(Vector2.Zero, 0f, new Vector2(1f, 1f), Vector2.Zero, MathHelper.ToRads(0), Vector2.Zero); 
+0

感谢您跟进并回答您提出的问题。 – NextInLine 2015-02-18 04:40:05

+0

没问题,我希望别人比我找到答案时有更轻松的时间。我也更新了如何在事后改变一切的答案。 – Karutoh 2015-02-18 04:48:46