Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2008, 20:07   #1
KingArthur
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 17
По умолчанию помощь в графике

Мне нужна помощь в графике.

Например у меня такая елементарная задача:

Я имею АРРАY[800,600] и ПаинтБох 800х600

В етом АРРАY находятса "труе" и "фалсе"

я хочу состояние етого АРРАY вывести на екран
(труе=голубая точка, фласе=белая точка)

делаю я ето таким образом:

-------------------------------------------------------------------------
type

Matrix = Array [1..800,1..500] of boolean;

var

Feld: Matrix;

..........


procedure TForm1.Button1Click(Sender: TObject);
var
x,y: integer;
begin

for y:=1 to 500 do
for x:=1 to 800 do
if (x mod 2) = 0 then
Feld[x,y]:=true
else
Feld[x,y]:=false;


for y:=1 to 500 do
for x:=1 to 800 do
if Feld[x,y] then
PaintBox1.Canvas.Pixels[x,y]:=clBlue
else
PaintBox1.Canvas.Pixels[x,y]:=clWhite;


end;

-----------------------------------------------------------------------

я понимаю что такой подход не оптимальний а тупой но по другому пока не могу


Так вот проблема. Прорисовиваетса етот екран не очень быстро (0.6секунды)

Каким образом я могу ето дело ускорить???

Мне кажетса здес нужно воспользоваться BitBlt

Верно???
KingArthur вне форума Ответить с цитированием
Старый 18.04.2008, 21:09   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Сначала по вопросу:
Дотуп к пикселам через Canvas.Pixels происходит медленно, отсюда и задержка. Есть способы ускорить, но здесь это не нужно.

Теперь совет: можно сделать принципиально иначе я об этом писал в соседней теме. Вместо того чтобы рисовать 480000 точек, можно рисовать 9(устройств) + 5(рук) + 1(колобок) ну и еще немного по мелочи, будет на порядок быстрее.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 18.04.2008, 21:23   #3
KingArthur
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 17
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
можно рисовать 9(устройств) + 5(рук) + 1(колобок) ну и еще немного по мелочи, будет на порядок быстрее.
Согласен.
но Руки, Елементы и Шарики будут заготовлены в качестве рисунков (которие я в Photo Shope нарисую)
Ети рисунки буду просто показыват/прятать (visible=true...=false)

Прорисовыват буду только дорожки и контакты
KingArthur вне форума Ответить с цитированием
Старый 18.04.2008, 21:25   #4
KingArthur
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 17
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
Есть способы ускорить, но здесь это не нужно.
Буду рад если подскажешь как
KingArthur вне форума Ответить с цитированием
Старый 18.04.2008, 21:40   #5
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Буду рад если подскажешь как
Сейчас как раз это обсуждается в самой верхней теме, правда там копирование целиком обуждается, но методы как раз попиксельные.
Повторюсь еще раз, в этой игре про колобка-программиста такое не нужно, эти методы для "гурманов" к-рые РПГ на GDI делают

Провода можно линиями, прямоугольниками, и даже пикселями (их не так много) рисовать, методами канвы, тормозить не будет. Единственное нужно в буфере (битмап в памяти) рисовать а то будет моргать при перерисовке, потом битмап целиком на экран методом канвы Draw(потянет нефиг делать), или BitBlt (немного быстрее).
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 18.04.2008 в 21:47.
mutabor вне форума Ответить с цитированием
Старый 19.04.2008, 23:58   #6
KingArthur
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 17
По умолчанию

появилась идея >>> соседняя тема

Последний раз редактировалось KingArthur; 20.04.2008 в 01:45.
KingArthur вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачка по математике и графике Hollander Помощь студентам 2 14.02.2008 18:08
Задачки по графике LaDy MaRMeLaD Паскаль, Turbo Pascal, PascalABC.NET 4 12.01.2008 16:14
Координаты на графике Dimon88 Помощь студентам 2 15.11.2007 17:34
Два вопроса новичка по графике. grey Помощь студентам 7 04.11.2007 17:48