С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103

После компиляции движущаяся окружность располосована .Как устранить этот недостаток?

25.10.2013, 23:46. Показов 841. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Код:
C#
1
2
3
4
5
6
7
8
9
10
private void button1_Click(object sender, EventArgs e)
        {
 
            for (int x = 0; x < 450; x++)
            {
                Graphics p = this.CreateGraphics();
                p.Clear(Color.Maroon);
                p.DrawEllipse(new Pen(Color.Blue, 100), x, 10, 100, 100);
            }
       }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2013, 23:46
Ответы с готовыми решениями:

Движущаяся окружность
Сделать окружность радиусом 5 пикселей, движущуюся слева направо по экрану. Режим screen12.

Как устранить эту ошибку ри компиляции?
1&gt;LINK : fatal error LNK1104: не удается открыть файл &quot;OLDNAMES.lib&quot;

DirectX и Code::Blocks, как устранить ошибку компиляции?
В общем у меня такая ситуация решил я тупо чужие примеры посмотреть и сразу же столкнулся с проблемой. У меня windows 10 ...

5
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
26.10.2013, 14:52
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
    public partial class Form1 : Form
    {
        int x = 0;
 
        public Form1()
        {
            InitializeComponent();
            SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            for (x = 0; x < 450; x++)
            {
                Refresh();
            }
        }
 
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.Clear(Color.Maroon);
            e.Graphics.DrawEllipse(new Pen(Color.Blue, 100), x, 10, 100, 100);
        }
    }
0
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103
26.10.2013, 21:35  [ТС]
В коде ответа используется понятие буфер и буферизация .Что это такое ?Как это работает в коде?
0
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
26.10.2013, 21:50
Вы рисуете вашу картинку в тот момент, когда она выводится на экран. В итоге видно только то, что успело отрисоваться (остальное - нет), вот и выглядит, как будто дергается и в полосках. Область памяти, где оно рисуется, называется видео-буфером. Двойная буферизация добавляет второй буфер. Вы рисуете на одном, а на экране в это время другой. После окончания прорисовки они меняются местами: рисунок попадает на экран СРАЗУ ВЕСЬ, а на "старом" начинает отрисовываться следующий кадр. Другая проблема была связана еще и с тем, что Вы не выключили системную отрисовку (она занимается в том числе и очисткой буфера от "старого" рисунка), а в коде используете Clear. Получается двойная работа. В VS почитайте, за что отвечают флаги в методе SetStyle, и все станет понятно.
0
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103
01.11.2013, 18:31  [ТС]
Что делать ,если OptimizedDoubleBuffer отсутствует в панели элементов VS 2008?Может я не там ищу? Возможно устаревшая версия.Может есть способ добавить этот элемент?

Добавлено через 45 минут
Новый код не работает .Движение круга по форме не наблюдаю.
0
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
01.11.2013, 19:16
вот Ваш двойной буфер, он в строке кода из моего примера (который, кстати, работает):

SetStyle(ControlStyles.OptimizedDoubleBu ffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2013, 19:16
Помогаю со студенческими работами здесь

Как устранить ошибку компиляции "A2022: instruction operands must be the same size"?
.686; Директива определения типа микропроцессора .Model flat, stdcall; задачи линейной модели памяти ; И соглашения ОС Windows ...

0xc000007b после установки драйвера KWORLD UB424-D. Как устранить?
Здравствуйте, уважаемые форумчане! Win8.1 Pro x64. После установки последней версии драйвера (с офф-сайта, разумется) для USB ТВ-тюнера...

После включения ноутбука на 1-2 минуты пропадает яркость. Как это устранить?
Когда ноутбук включился на 1-2 мин пропадает яркость

Как устранить проблемы с сетью после "лечения"
Для windows XP В данным случае рекомендуется воспользоваться программой WinsockFix (выберите версию, которая соответствует вашей...

Как убрать консоль после компиляции?
Добрый день, я не давно изучаю программирование, возможно глупый вопрос но не могу найти ответ. Написал не сложную программку, использовал...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru