Рисование на форме - C# (201899)
Формулировка задачи:
Есть ли где-то краткое руководство по рисованию геометрических фигур на форме? Или какой-нибудь сайт полезный. Киньте ссылку, пожалуйста.
Решение задачи: «Рисование на форме»
textual
Листинг программы
using System; using System.Drawing; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { BufferedGraphics _bufferedGraphics; Pen _pen; Rectangle _rectHouse; //Прямоугольник дома //Rectangle _rectChimney; //Прямоугольник дымовой трубы Point[] _pointsHousetop; //Крыша дома public Form1() { InitializeComponent(); StartPosition = FormStartPosition.CenterScreen; Size = new Size(700, 600); InitializeGraphics(); InitializeCoordinates(); _pen = new Pen(Color.Black, 3); Paint += new PaintEventHandler(Form1_Paint); Resize +=new EventHandler(Form1_Resize); } private void InitializeCoordinates() { const int widthHouse = 140; const int heightHouse = 80; _rectHouse = new Rectangle(ClientSize.Width / 2 - widthHouse / 2, ClientSize.Height / 2 - heightHouse / 2, widthHouse, heightHouse); const int underhang = 8; //отступ влево и вправо нижних углов треугольника крыши const int heightHousetop = 45; //высота треугольника крыши if (_pointsHousetop == null) _pointsHousetop = new Point[5]; _pointsHousetop[0] = new Point(_rectHouse.X - underhang, _rectHouse.Y); _pointsHousetop[1] = new Point(_rectHouse.X + _rectHouse.Width / 2, _rectHouse.Y - heightHousetop); _pointsHousetop[2] = new Point(_rectHouse.Right + underhang, _rectHouse.Y); _pointsHousetop[3] = new Point(_pointsHousetop[0].X, _pointsHousetop[0].Y); _pointsHousetop[4] = new Point(_pointsHousetop[1].X, _pointsHousetop[1].Y); //снова получаем координату верхней точки треугольника крыши, чтобы левый нижний угол был острый при отрисовке } private void InitializeGraphics() { _bufferedGraphics = BufferedGraphicsManager.Current.Allocate(CreateGraphics(), ClientRectangle); } private void Form1_Paint(object sender, PaintEventArgs e) { DrawToBuffer(); } private void Form1_Resize(object sender, EventArgs e) { InitializeCoordinates(); InitializeGraphics(); Invalidate(); } private void DrawToBuffer() { _bufferedGraphics.Graphics.Clear(BackColor); _bufferedGraphics.Graphics.DrawRectangle(_pen, _rectHouse); _bufferedGraphics.Graphics.DrawLines(_pen, _pointsHousetop); _bufferedGraphics.Render(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д