Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2021, 11:03   #21
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 577
По умолчанию

Цитата:
Сообщение от kvitaliy Посмотреть сообщение
что тогда причем
1) библиотеки
2) менее детская функциональность

но точно не компилятор
----
7 метров - это нынче не размер для приложения, а крохи
Алексей1153 вне форума Ответить с цитированием
Старый 20.09.2021, 12:53   #22
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,641
По умолчанию

у меня простой детский клавиатор раздулся до 56 Мб, но только когда я в него загрузил 1.025.000 слов и фраз.... но упаковщик всё это ужал до 3,2 Мб. Delphi 5 или 7 версия - одинаково.
а что будет тут, на Delphi 10, даже не знаю....
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 29.09.2021, 04:51   #23
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,857
По умолчанию

Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
если рисуется много линий разом, то хорошо можно ускориться при помощи Polyline и PolyPolyline
Ускориться вряд ли получится.
Выкладываю фрагмент своей программы по этому вопросу, можете посмотреть.
Если есть идеи как ускорить графику, можете написать.
Вложения
Тип файла: rar Canvas.rar (647.3 Кб, 3 просмотров)
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.narod.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 29.09.2021, 06:24   #24
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 577
По умолчанию

newerow1989, я дельфи не знаю, так что покопаться не смогу. Но точно могу сказать, что если есть вывод разом кучи линий, то будет быстрее работать, если переделать алгоритм так, чтобы массив точек накапливался в контейнере, а затем разом выводился при помощи Polyline или PolyPolyline.

Ведь MoveTo/LineTo - это многократное обращение к железяке, а это - тормоза.
А вот в ОЗУ накопить данные - это быстро. Затем производится одно обращение к железяке, а железяка разом бабахает всё на экран
Алексей1153 вне форума Ответить с цитированием
Старый 30.09.2021, 01:29   #25
blackstrip
Форумчанин
 
Аватар для blackstrip
 
Регистрация: 21.01.2012
Сообщений: 236
По умолчанию

Вроде как в процедуре TForm1.LineSozw делается парсинг строк постоянно. Т.е. при каждой отрисовке берется строка, разбивается на куски, превращается в цифры, которые используются при рисовании линий.

Код:
s:=Copy1(sl_szw[i], 1, '|');
a:=StrToFloat(s);
s:=Copy1(sl_szw[i], 2, '|');
b:=StrToFloat(s);
s:=Copy1(sl_szw[i], 3, '|');
s:=UpCase(s);
if s='Н' then
   mov:=true;
a:=a/pi*180;
b:=b/pi*180;
v:=Tochka(a, b, a0, b0, c0, r*m, x, y, false);
И это делается постоянно - покрутил мышкой сферу со звездами и созвездиями - и снова парсинг?

Может отпарсить их заранее один раз при старте проги, и потом уже работать с координатами, сохраненными в численные массивы, и из них считать положения объектов с учетом текущего поворота камеры. Тогда не будет кучу раз вызываться работа со строками и всякие StrToFloat. Может быть это они тормозят процесс?
blackstrip вне форума Ответить с цитированием
Старый 30.09.2021, 07:29   #26
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,641
По умолчанию

думаю, если автор программы сам их отключит/закоментирует и запустит программу, то увидит результат. без подписей, кажется, должно быстрее работать. если да, то будет думать над ускорением.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 04.10.2021, 04:37   #27
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,857
По умолчанию

Цитата:
Сообщение от blackstrip Посмотреть сообщение
Может отпарсить их заранее один раз при старте проги, и потом уже работать с координатами, сохраненными в численные массивы, и из них считать положения объектов с учетом текущего поворота камеры. Тогда не будет кучу раз вызываться работа со строками и всякие StrToFloat. Может быть это они тормозят процесс?
Незначительно ускорилось (см. вложение).
Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
Но точно могу сказать, что если есть вывод разом кучи линий, то будет быстрее работать, если переделать алгоритм так, чтобы массив точек накапливался в контейнере
Линию толщиной в 1 пиксель я могу нарисовать с помощью алгоритма, но Pen.Width >= 2 уже сложнее придумать алгоритм.
Вложения
Тип файла: rar Canvas.rar (648.1 Кб, 1 просмотров)
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.narod.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 04.10.2021, 07:17   #28
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 577
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
но Pen.Width >= 2 уже сложнее придумать алгоритм
всё абсолютно то же самое, только перед рисованием:

CreatePen
SelectObject
(не забыть после рисования DeleteObject для пера, а вернутое из SelectObject - поставить обратно)
Алексей1153 вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фото звездного неба веб камерой. Vomifor Мультимедиа в Delphi 20 09.01.2015 01:44
Карта kuba1981 JavaScript, Ajax 5 30.08.2012 12:43
Карта Кристинка89 Помощь студентам 1 27.04.2012 17:15
построить карту звездного неба на C# Svetlanka_ C# (си шарп) 16 30.08.2011 15:47