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; } } }