2015-02-06 2 views
0

Я некоторое время смотрю по интернету, и я не могу найти ответ, который я искал. Так что я намереваюсь делать с растровыми изображениями, я хочу нарисовать их в окне и иметь возможность изменять их размер каждый раз. Любая помощь будет оценена!SharpDX Bitmaps

+0

Почему вы рассматриваете SharpDX (Direct2D?)? WPF или Windows Phone/Windows App имеют технологии для рисования произвольных путей, которые будут намного проще использовать, особенно по мере изменения размеров. – NextInLine

+0

Потому что я разрабатываю игровой движок, а не обычное настольное приложение или приложение. – Karutoh

ответ

1

Для тех из вас, кто не знает, вы можете использовать матрицы для перевода, изменения размера и поворота. Вот как это сделать. Также не забудьте изменить матрицу для RenderTarget, прежде чем рисовать фактический объект.

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

+0

Нет проблем, я бы хотел, чтобы у других было легче, чем когда я находил ответ. Я также обновил ответ, чтобы потом все изменить. – Karutoh

Смежные вопросы