12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- using GUI.Properties;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace GUI
- {
- public partial class Roulette : Panel
- {
- float degree;
- public float Degree
- {
- get => degree;
- set
- {
- degree = value % 360;
- var bkup = BackgroundImage;
- BackgroundImage = rotateImage(sourceImage, degree);
- bkup?.Dispose();
- }
- }
- Bitmap sourceImage;
- public Roulette()
- {
- sourceImage = new(Resources.Roulette);
- Degree = 0;
- DoubleBuffered = true;
- }
- static Bitmap rotateImage(Bitmap b, float angle)
- {
- Bitmap returnBitmap = new Bitmap(b.Width, b.Height);
- Graphics g = Graphics.FromImage(returnBitmap);
- g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
- g.TranslateTransform((float)b.Width / 2, (float)b.Height / 2);
- g.RotateTransform(360 - angle);
- g.TranslateTransform(-(float)b.Width / 2, -(float)b.Height / 2);
- g.DrawImage(b, new Point(0, 0));
- g.Dispose();
- return returnBitmap;
- }
- }
- }
|