Прежде всего надо получить изображение формы в Bitmap
В C# это делается примерно так
пусть есть форма Form2, созданная в визуальном редакторе, тогда
using System.Drawing;
using System.Threading;
....
Form2 objForm2 = new Form2(); //создаём форму
objForm2.Visible = false; //Запрещаем показ на экране
objForm2.Show(); //Выводим невидимую форму (иначе в Bitmap не попадут внутренние элементы управления
Size objSize = objForm2.Size; //Получаем размер окна вместе с заголовком
Bitmap objBitmap = new Bitmap(objSize.Width, objSize.Height); //Создаём Bitmap в размеры окна
objForm2.DrawToBitmap(objBitmap, new Rectangle(0,0, objSize.Width, objSize.Height)); //Отрисовываем форму в Bitmap
objForm2.Close(); //Закрываем форму
---
Дальше в C# небольшая подставка - реализован поворот картинок только на градусы, кратные 90. Теперь её надо отобразить. Сделаем это в другой форме (пусть есть форма Form1 с PictureBox), можно установить сжатие картинки, чтобы было наглядно видно что происходит.. .
Form1.pictureBox1.Image = objBitmap; //Связываем PictureBox и Bitmap
for(int i=0;i<10;i++) //Будем 10 раз поворачивать
{
objBitmap.RotateFlip(RotateFlipType.Rotate90FlipNone); //Последовательно на 90 градусов
Form1.pictureBox1.Refresh(); //Вызываем перерисовку pictureBox1
Application.DoEvents(); //Даём возможность приложению отработать события
Thread.Sleep(1000); //Спим одну секунду
}
Если нужны повороты на заданный угол - делается формулами
x = xo + r * cos(alpha + beta)
y = yo + r * sin(alpha + beta)
xo,yo - центр поворота,
r - длина отрезка
Пиксели можно получить и установить у Bitmap с помощью функций GetPixel и SetPixel
Ну примерно так.... Набросок
P.S: Да! Можно выйти на хэндл окна рабочего стола и вызвать прорисовку прямо на нём, но это уже будет небезопасный код в C#.А так - н-р Form1 в дальнейшей делаем прозрачной и отключаем показ заголовков.. .
Другие языки программирования и технологии
C# C++ Как сделать, чтобы при появлении форма раскручивалась в центре экрана.(подскажите алгоритм)
раскручивалась? как это? Чтобы, в прямом смысле, крутилась вокруг своей оси? попробуй для этого использовать, например, силверлигхт (силверлайт)
(англ. буквами писать не могу)
(англ. буквами писать не могу)
Похожие вопросы
- Правда ли что на C++\C# можно сделать все что угодно, от простенькой утилиты до целой оси?
- C#. Как сделать, чтобы программа проверяла тип введённой переменной?
- Программисты, подскажите алгоритм, пожалуйста, очень нужно(Паскаль)!
- Нужно перемешать массив на C++. Есть массив, его нужно случайным образом перемешать. Нужен именно КОД, а не алгоритм
- Как сделать шапку сайта, что-бы при меньшем разрешении экрана её размер подгонялся под экран?
- Здравствуйте! Помогите, пожалуйста! Вобщем мне нужно сделать html или php форму.
- C# Как сделать сохранение игры и запуск сохраненной игры?
- c++) а... как сделать так?
- хочу изучить c++, c# и .net, подскажите, с чего начать
- Вопросик по Pascal. Есть переменные A,B,C,D. Как сделать так, чтобы при вводе A выводилось цифра 1, B - 2, C-3, D-4?