Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
SVNBASHED
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 1
1

Нарисовать круги

12.12.2018, 23:19. Просмотров 428. Ответов 2
Метки нет (Все метки)

Добрый вечер, господа, начинаю изучать C# и нужна ваша помощь
Мне надо нарисовать эти круги, но чтобы я вводил кол-во этих кругов и дальше они уже рисовались, подскажите, пожалуйста, как реализовать это!
0
Миниатюры
Нарисовать круги  
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2018, 23:19
Ответы с готовыми решениями:

Програма выводит на экран концетрические круги, рисует круг по среднему радиусу этих кругов, описывает вокруг него фигур
Здравствуйте, друзья, прошу о помощи. Мне нужно написать программу на C#. Не особо разбираюсь, т.к....

круги или овалы как рисовать
можно вопрос... а круги или овалы как рисовать,есть ли для этого какие нить компоненты...

Нарисовать Круги
Люди выручите пожалуйста! Мне нужно нарисовать Круги чтоб они были на одинаковом расстояние и...

Нарисовать круги
Написать программу, которая выводит на экран приведенный ниже узор.

2
Lexeq
1016 / 666 / 457
Регистрация: 21.01.2014
Сообщений: 1,771
Завершенные тесты: 2
13.12.2018, 00:41 2
SVNBASHED,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
    public partial class Form1 : Form
    {
        int circleCount = 5;
 
        public Form1()
        {
            ResizeRedraw = true;
            DoubleBuffered = true;
            TextBox tbCount = new TextBox
            {
                Location = new Point(5, 5),
                Text = circleCount.ToString()
            };
            tbCount.TextChanged += (o, e) =>
            {
                int.TryParse(tbCount.Text, out circleCount);
                Invalidate();
            };
            Controls.Add(tbCount);
        }
 
        protected override void OnPaint(PaintEventArgs e)
        {
            Point start = new Point(DisplayRectangle.Width / 2 , DisplayRectangle.Height / 2);
 
            int growFactor = 20;
 
            for (int i = 1; i <= circleCount; i++)
            {
                var size = i * growFactor;
                e.Graphics.DrawEllipse(Pens.Black, start.X - size, start.Y - size / 2, size, size);
                e.Graphics.DrawEllipse(Pens.Black, start.X + size, start.Y - size / 2, -size, size);
            }
 
            e.Graphics.DrawLine(Pens.Black, start.X, start.Y - growFactor * circleCount / 2, start.X, start.Y + growFactor * circleCount / 2);
        }
    }
0
alexus5
319 / 165 / 95
Регистрация: 07.01.2016
Сообщений: 440
Завершенные тесты: 4
13.12.2018, 00:42 3
SVNBASHED,
добавь класс в пространство имен проекта
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    public static class GraphicsExtension
    {
        /// <summary>
        /// Рисует две системы вложенных окружностей
        /// </summary>
        /// <param name="g">Поверхность рисования</param>
        /// <param name="pen">Кисть</param>
        /// <param name="p0">Центр масс</param>
        /// <param name="r0">Начальный радиус окружностей</param>
        /// <param name="count">Количество окружностей в системе</param>
        public static void DrawTwinCircle(this Graphics g, Pen pen, PointF p0, float r0, int count)
        {
            for (double a = 0; a <= Math.PI; a += Math.PI) g.DrawCircleSystem(pen, p0.X - r0*(float)Math.Pow(-1, Math.Sign(a)), p0.Y, r0, a, count);
        }
        /// <summary>
        /// Рисует систему вложенных окружностей
        /// </summary>
        /// <param name="g">Поверхность рисования</param>
        /// <param name="pen">Кисть</param>
        /// <param name="x0">X центра начальной окружности</param>
        /// <param name="y0">Y</param>
        /// <param name="angle">Направление построения вложенных окружностей (0 = 3ч, отсчет против часовой стрелки)</param>
        public static void DrawCircleSystem(this Graphics g, Pen pen, float x0, float y0, float r0, double angle, int count)
        {
            float dR = r0 / count;
            for(float r = r0;r>0;r-=dR, x0 += dR* (float)Math.Cos(angle), y0 += dR*(float)Math.Sin(angle))
            {
                g.DrawEllipse(pen, x0 - r, y0 - r, 2 * r, 2 * r);
            }
        }
    }
а вот это повесить на событие Paint формы
C#
1
2
3
4
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.DrawTwinCircle(Pens.Green, new PointF(Width / 2, Height / 2), 100, 6);
        }
0
Миниатюры
Нарисовать круги  
13.12.2018, 00:42
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2018, 00:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Нарисовать круги с линиями
Ребята, помогите нарисовать пару кружков как на картинке и потом нажимая на кнопку мыши или кнопку...

Нарисовать круги на воде
for(i=0;i&lt;30;i++) { for(int it=0; it&lt;30; it++) { for(int q=0; q&lt;360; q++) { ...

Нарисовать круги Эйлера
Как нарисовать круги Эйлера

Нарисовать круги и квадраты
Построить изображение, используя оператор цикла:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.