IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Проблема....... Двойная буферизация... (https://www.imho.ws/showthread.php?t=53769)

minskboy 14.03.2004 14:32

Проблема....... Двойная буферизация...
 
Привет!

У меня есть в тебе вопрос.

Передо мной стоит задача:

Написать программу(c++, win32 API), отображающую анимацию. Начало
движения: левый нижний угол окна. Конец - правый верхний угол окна. Объект
движения - круг, который уменьшается в размере, сменяя цвета. Использовать
метод двойной буферизации.

Ничего толкового не нашел? Как решить задачу?

Еще нужно разобраться с такими вопросами, как класс Bitmap, cоздание,
заполнение, вывод битовой карты


Сергей-Минск

/7y3uK 14.03.2004 16:45

Пользуй OpenGL там уже все встроено. API не предназначен для графики как таковой и катит только для самой простой "офисной" графики, ну там всякие диаграммки и др. А анимация без двойной буферизации будет очень сильно мерцать, т.к. стандартный API ее изначально не поддерживает. Самый простой выход чтобы не парится и самому не изобретать велосипед, я имею в виду двойную буферизацию - использования встроенного во все окна движка OpenGL. Что быстро и просто.

могу кинуть мануал, правда для дельфи, но зато там очень понятно все написано.

minskboy 14.03.2004 17:51

кинь мануал.., плиззз

minskboy@tut.by

мне во вторник сдавать лабу надо

t_G_M_ 15.03.2004 03:55

/7y3uK

Сбрось и мне, если не сложно:
t_G_M_@ukr.net

/7y3uK 15.03.2004 20:30

Вводную читайте на _ttp://vr-online.ru/books/bib.htm в разделе библия Delphi есть в электронном варианте, целая глава как раз про OpenGL и API графику - автор Фленов М.
Пока не знаю куда залить целиковую книгу с экземплами.

SapeR 16.03.2004 03:04

по сабжу: 100 лет не пользовал, если что - ногами не бить

1. движение объекта есть рисование его в различных позициях по таймеру
2. буферизация есть подготовка изображения ДО его показа (заполнили битмэм и ждём вызова на показ)
3. двойная буфф. - заполнение буфера №2 для СЛЕДУЮЩЕГО кадра, пока показывается текущий

всего-то функций - заполни битмэп, приаттачь битмэп и таймер

/7y3uK 16.03.2004 16:15

Я так тоже пробовал, но увы - мерцает. API графики не предназначены для более серьезных вещей, чем диграммки и пр. Там даже нет дефорлтной очистки битмапа. Двойная буферизация - имхо в наше время, это функциональная взможность девайса, который берет на себя, при определенной крутизне его самого, достаточно большую долю вычислений камня.

Mind 21.03.2004 04:47

Mozhno vospolzovatsya DirectX.
Sam delal.:) Vse dovolno prosto:sozdaesh 2 surfaces i menyaesh ih.
No inogda proishodyat takie oshibki, chto novichku ochen trudno razobratsya.
Vobshem dlya DX nuzhna horoshaya kniga.
Da tok smotrite, chtobi v knige visokoe resolution ressmatrivalos tozhe.

Merge 14.05.2004 20:56

создаешь переменную типа битмап чёто вроде
Graphics::TBitmap *bmp;
bmp = new Graphics::TBitmap();
bmp->Height = 500; //задаешь высоту, ширину
bmp->Width = 500;
рисуешь на неё чё тебе надо(надеюсь, умеешь ;Р)
дальше смотря куда ты рисуешь(допустим на форму)
Form1->Canvas->CopyRect(TRect(0,0,500, 500), bmp->Canvas, TRect(0,0,500, 500));
усё, регламент ... т.е. получается что ты сначала в памяти рисуешь а потом на экран уже нарисованное пихаешь

edbond 19.05.2004 19:07

самый правильный вариант - openGL. очень простой АПИ, кроссплатформенность и т.д.
www.opengl.org


Часовой пояс GMT +4, время: 13:24.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.