Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
.NET 4.x

Почему графика тормозит компьютер

28.01.2023, 18:55. Показов 5088. Ответов 69
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему графика тормозит компьютер

Визуализация "летающий круг" для проверки цветов
внутри WinForms тормозит компьютер

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
using System; //circle.cs
using System.Drawing;
using System.Windows.Forms;
 
class circle: Form
{ public static void Main()
    { Application.Run(new circle());}
public circle()
    { Text = "circle";
      BackColor = System.Drawing.Color.Blue;
      ForeColor = System.Drawing.Color.Red;
      ResizeRedraw = true;
      Width = 600; 
      Height = 360;
    }
    protected override void OnPaint(PaintEventArgs dan)
    { Pen pen = new Pen(ForeColor);
 
Graphics dav = dan.Graphics;
SolidBrush BlueBrush = new SolidBrush(Color.Blue);
dav.FillRectangle(BlueBrush, 0, 120, 600, 200);
 
for (int k = 1; k <=5; k++)
    for (int x = -50; x <=50; x++)
        { int y=0;
          dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+195, 225, 10, -80);
          if (x< 50) y=-x/5;
          if (x< 25) y= x/5;
          if (x<-25) y=-x/5;
          if (x<-50) y= x/5;
 
          System.Threading.Thread.Sleep(10);
          dav.DrawEllipse(new Pen(Color.Orange, 3), x*k+195, 225, 10, -80);
        }
    }
}
Окно мышью не перемещается

Отчего торможение?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.01.2023, 18:55
Ответы с готовыми решениями:

Тормозит отрисовка графика
Рисую chart-график в таймере циклом на 50000 точек. через банальный AddXY. Первые 2 секунды все отрисовывается хорошо, ничего не тупит....

Почему-то тормозит компьютерная графика
вот написал код, но почему-то тормозит. Можете, пожалуйста, объяснить почему и показать способы решения этой проблемы using System; ...

Почему тормозит BitArray
Вопрос и в том, почему может тормозить BitArray, и в том, как же это лучше исправить. Прилагаю анализ временных затрат и соответствующий...

69
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
17.02.2023, 10:10  [ТС]
Студворк — интернет-сервис помощи студентам
Пятничные новости тормозящих анимаций

Создана визуализация: рельеф

Главная формула
C#
1
dav.DrawLine(pred, new Point(30+20*x+20*y, 400-20*y-a[x,y]), new Point(30+20*(x+1)+20*y, 400-20*y-a[x+1, y]));
АннимациЯ:
Изображения
 
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
17.02.2023, 10:55
Цитата Сообщение от DAV78 Посмотреть сообщение
Создана визуализация: рельеф
хоспади.. как же мы жили раньше без этой невероятно полезной фичи ..
Миниатюры
Почему графика тормозит компьютер  
0
dive
 Аватар для I can
4995 / 4756 / 851
Регистрация: 13.04.2015
Сообщений: 10,005
17.02.2023, 11:22
Цитата Сообщение от Worldmaster Посмотреть сообщение
без этой невероятно полезной фичи
-"И чо?" -"И всё!"
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
24.02.2023, 15:15  [ТС]
Пятничные новости тормозящих анимаций прошлого года

Создана визуализация: закраска

Поле разделено на квадратные ячейки
и быстро заполняется каждая ячейка

Поэтому поле заполняется практически в C#
и поле заполняется полностью в qb64 очень быстро
ведь в qb64 есть контроль цвета точки с координатами

Главная формула
C#
1
dan.Graphics.DrawLine(pblu, i*s+c, j*s+d, i*s+c+1, j*s+d+1);
Главное: случайные контролируются

Результат 78кБ
Изображения
 
0
Эксперт .NET
 Аватар для Usaga
14371 / 9478 / 1360
Регистрация: 21.01.2016
Сообщений: 35,752
26.02.2023, 07:28
DAV78, и дальше что? В чем практическая польза этой вашей летописи о ваших достижениях?
2
 Аватар для Andrey-MSK
3381 / 2267 / 388
Регистрация: 14.08.2018
Сообщений: 7,683
Записей в блоге: 4
27.02.2023, 08:58
Цитата Сообщение от DAV78 Посмотреть сообщение
Результат 78кБ
Не забудьте прибавить вес .NET Framework 4.8 или .NET Core (5, 6, 7)...
1
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
03.03.2023, 17:17  [ТС]
Отвечать на вопросы доверяю читателям
особенно учитывая мою тему
Анимация WinForms C# не компилируется

Моя программа цветовая гамма на C# строится долго
зато на qb64 строится за менее секунды
и для спецэффектов в qb64 пришлось ставить паузы

Сегодняшняя моя давнишняя пятничная тормозящая программа

gif 88 kB


Приложение читает из окон заданные или назначенные значения
и создаёт расчёты и оформление используя данные данные

Формы названы буквами вида textBoxA
и сейчас именовал бы яснее цифрами или через массив

Однако проблема в чём: программа будто работает 1 раз

Например введя новые данные предыдущий вывод не стирается
и даже новые числа поверх старых не пишет

Как повторять оконную программу множество раз?

Есть ли простейшая похожая программа WinForms работающая непрерывно?


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
38
39
40
41
42
43
44
45
46
47
48
using System; using System.Drawing; // SUMCOMB.cs
using System.Windows.Forms; namespace SUMCOMB
{ public class Program
{ static void Main() { Application.Run(new SUMCOMB()); }}
class SUMCOMB : Form
{ ComboBox comboBoxD; TextBox textBoxA; Button buttonV;
 
public SUMCOMB()
{ var labelD = new Label(); labelD.Text = "D СТРОК";
  labelD.Location = new System.Drawing.Point(45, 28);
  Controls.Add(labelD);
 
comboBoxD = new ComboBox();
    comboBoxD.Location = new Point(45, 50);
    comboBoxD.Width = 50;
    comboBoxD.Items.Add("7");
    comboBoxD.Items.Add("5");
    comboBoxD.Items.Add("3");
    comboBoxD.SelectedIndex = 1;
    this.Controls.Add(comboBoxD);
 
var labelA = new Label(); labelA.Text = "A СТОЛБЦОВ";
    labelA.Location = new System.Drawing.Point(45, 78);
    Controls.Add(labelA);
 
textBoxA=new TextBox(); textBoxA.Text = "4";
    textBoxA.Location = new System.Drawing.Point(45, 100);
    this.Controls.Add(textBoxA);
 
buttonV = new Button();   
    buttonV.Location = new System.Drawing.Point(45, 200);
    buttonV.Text = "SUMCOMB";
    buttonV.Click+=buttonV_Click; Controls.Add(buttonV);
}
 
private void buttonV_Click(object sender, EventArgs e)
{ int dd = int.Parse(comboBoxD.Text);
  int aa = int.Parse(textBoxA.Text);
 
for (int i=1; i <= dd; i++)
{ string s= "";
    for (int j=1; j <= aa; j++)
    s = s+"  "+(i+j).ToString();
var labelI = new Label();
labelI.Text = s;
labelI.Location = new System.Drawing.Point(145, 25+25*i);
Controls.Add(labelI);
}}}}
0
Эксперт .NET
 Аватар для Usaga
14371 / 9478 / 1360
Регистрация: 21.01.2016
Сообщений: 35,752
03.03.2023, 17:26
Цитата Сообщение от DAV78 Посмотреть сообщение
Однако проблема в чём: программа будто работает 1 раз
Например введя новые данные предыдущий вывод не стирается
и даже новые числа поверх старых не пишет
Как повторять оконную программу множество раз?
Отладчиком воспользуйся.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18355 / 14281 / 5370
Регистрация: 17.03.2014
Сообщений: 28,962
Записей в блоге: 1
04.03.2023, 00:55
DAV78, новые метки создаются под старыми. В этом несложно убедиться если добавить в цикл строку labelI.BringToFront();. Но это не решение. Нужно удалять старые метки (проще всего это сделать если у них будет свой контейнер - Panel например) или вообще отказаться от кучи меток и использовать одну заранее созданную.
0
 Аватар для DAV78
6 / 6 / 0
Регистрация: 01.09.2018
Сообщений: 93
10.03.2023, 08:08  [ТС]
Сначала обращаю внимание на тему
Алгоритмы и языки и МЫ
где пишутся милли алгоритмы на 3...5...8 языках программирования

Сегодняшняя моя давнишняя пятничная тормозящая программа
88 кБ

напоминает школьные этюды про соединение всех точек
88 кБ
и олицетворяет количество обменов если сортировка пузырьковая

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
38
39
40
41
42
43
44
45
using System; using System.Drawing; // SOEDIN.cs
using System.Windows.Forms; class SOEDIN 
{ Timer timer; Form form;
int[] x = new int[10]; int[] y = new int[10];
    
static void Main(string[] args) 
 { var p = new SOEDIN();
 }
 
public SOEDIN()
{ form = new Form() 
{ Text = "SOEDIN", Width = 600, Height = 360 };
 
timer = new Timer() { Interval = 2000 };
timer.Tick += delegate(object sender, EventArgs e)
 
{ Random rand = new Random();
 
for (int i = 1; i <=8; i++)
   { x[i]=50+rand.Next(400);
     y[i]=50+rand.Next(200);
   }
 
Graphics f = Graphics.FromHwnd(form.Handle);
f.Clear(Color.Green);
Graphics w = Graphics.FromHwnd(form.Handle);
 
for (int i = 1; i <=8; i++)
w.DrawEllipse(new Pen(Color.Magenta, i), x[i]-10, y[i]-5, 20, 10);
 
for (int i = 1; i < 8; i++)
    for (int j = 8; j > i; j--)
{ Bitmap dblBuffer = new Bitmap(form.Width, form.Height);
Graphics g = Graphics.FromImage(dblBuffer);
g.DrawLine(new Pen(Color.Red, i), new Point(x[i], y[i]), new Point(x[j], y[j]));//Pens.Red
f.DrawImage(dblBuffer, new Point(0, 0));
System.Threading.Thread.Sleep(200);
}
System.Threading.Thread.Sleep(500);
Array.Clear(x, 0, 10); Array.Clear(y, 0, 10);
     };
timer.Start();
Application.Run(form);
   }     
}
66 кБ

Программа сырая несмотря на 3+ летний срок сочинения
и наверняка получится ускорить как недавно XONIX

а пока учу несколько япов одновременно
Алгоритмы и языки и МЫ
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.03.2023, 08:08

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

Почему-то тормозит компьютер
Вчера переустановил WinXP. И как-то странно начала работать система. Интрнет медленно загружается. Все файлы программ медленно...

Компьютер тормозит, компьютер раздражает
Сейчас проблема обострилась в своём идиотизме. Ставлю благодарно позаимствованный Assassin's Creed IV Black Flag - тормоза, хоть...

Тормозит графика
Ребят подскажите в чём дело, после непродолжительной работы, компьютер начинает зависать, а именно графика, ощущается явное торможение,...

тормозит графика при 24- и 32-битном цвете
При частой перерисовке прозрачных картинок (порядка 20-30 раз в секунду) наблюдаются ощутимые тормоза кто-нибудь знает как...


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

Или воспользуйтесь поиском по форуму:
70
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru