Работа с графикой в формах - C#

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста изменить программу в работе с графикой в формах Нужно чтобы выводило именно круги рандомного радиуса, а у меня может вывести и овал. Вот код
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace aw
{
    public partial class Form1 : Form
    {
        Graphics graph;
        Bitmap img;
        public Form1()
        {
            InitializeComponent();
            SetStyle(ControlStyles.ResizeRedraw, true);
        }
 
        protected override void OnPaint(PaintEventArgs e)
        {
            if (timer1.Enabled)
            {
                graph = panel1.CreateGraphics();
                DrawCircle();
            }
 
        }
        void DrawCircle()
        {
            int x = panel1.Width;
            int y = panel1.Height;
            Random rnd = new Random();
            Brush brsh = new SolidBrush(Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)));
            Point rsz = new Point(rnd.Next(x), rnd.Next(y));
            Size sz = new Size(rnd.Next(x - rsz.X), rnd.Next(y - rsz.Y));
            Rectangle rct = new Rectangle(rsz, sz);
            graph.FillEllipse(brsh, rct);
        }
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Enabled = false;
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (timer1.Enabled)
            {
                this.Invalidate(false);
            }
        }
 
        private void panel1_Paint(object sender, PaintEventArgs e)
        {
 
        }
    }
}

Решение задачи: «Работа с графикой в формах»

textual
Листинг программы
int s =rnd.Next(x - rsz.X); // только тут возможно надо брать меньшее из Yи X
 Size sz = new Size(s,s);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы