![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
Altair |
![]()
Сообщение
#1
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Очень медленно выводятся некоторые фигуры, например, окружность.
Как можно ускорить вывод графики? В программе выводятся только окружности, но много. Вывод осуществляется ОЧЕНЬ медленно. Может поможет написание процедуры Circle на асме? -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
BlackShadow |
![]()
Сообщение
#2
|
Гость ![]() |
Принцип примерно такой:
1). Готовишь матрицу m*n, в которой записываешь коды цвета каждого пикселя. Например: Код 0 0 1 0 0 0 1 0 1 0 1 0 2 0 1 2). Когда нужно вывести фигуру пробегаешь по массиву и вместо кода цвета подставляешь нужный цвет или пропускаешь точку вобще. Например при выводе фигуры указанного массива можно поступить так.Написать функцию DrawShtuka с четырьмя параметрами: x, y, цвет №1 и цвет №2. В функции пробежаться по этому массиву типа Код For i:=0 To 4 Do For j:=0 To 2 Do Case Matrix[i,j] Of 1: PutPixel(x+i,y+j,Color1); 2: PutPixel(x+i,y+j,Color2) End Для шибкоразноцветных фигур можно передавать массив цветов. А в идилии такая функция описывается примерно так: Код Type TIntVector=Array Of Integer; TIntMatrix=Array Of TIntVector; Procedure Draw(x,y:Integer;Matrix:TIntMatrix;Colors:TIntVector); Var i,j:Integer; Begin For i:=0 To Hi(Matrix) Do For j:=0 To Hi(Matrix[i]) Do If Matrix[i][j]<>-1 Then PutPixel(x+i,y+j,Colors[Matrix[i][j]] End; Ну, или примерно так. В твоём случае, конечно, это плохой выход. Даже, наверное, совсем не выход. Но в будующем может и пригодится ![]() |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 17:05 |