Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];

Вниз

Как убрать мерцание?   Найти похожие ветки 

 
Lexa   (2003-03-28 23:47) [0]

Под скажите как убрать мерцание на Image.Я хочу вывести фигуру которая вращается.Вот пример кода.

procedure TMainForm.Timer1Timer(Sender: TObject);
begin
Move(T, -AFigure2[1,1], -AFigure2[1,2], -AFigure2[1,3]) ;
MulMatrix(AFigure2, KTop, T, TMP);
ClearCanvas(Image4);
RotateOx(Rx, T);
Mulmatrix(TMP, KTop, T, TMP);
RotateOy(Ry, T);
Mulmatrix(TMP, KTop, T, TMP);
RotateOz(Rz, T);
Mulmatrix(TMP, KTop, T, TMP);
Move(T, AFigure2[1,1], AFigure2[1,2], AFigure2[1,3]) ;
Mulmatrix(TMP, KTop, T, TMP);
ConstructionFigure(Image4.Height div 2-60, Image4.Width div 2, Image4);
if CheckBox1.Checked then inc(Rx);
if CheckBox2.Checked then inc(Ry);
if CheckBox3.Checked then inc(Rz);
end;

В паскале для этого можно было менять видеостраницы а как это сделать в Delphi.


 
multik   (2003-03-29 00:04) [1]

Я не знаю поможет тебе это, но вот статья, которую где-то нашлёл.
>>>
Как сделать анимацию немерцающей

Мерцание возникает, когда цвет точки меняется два раза подряд. Например, правильнее объект при его перемещении стирать и затем рисовать на новом месте не на экране, а в памяти, и выводить на форму уже готовое изображение поверх предыдущего. В таком случае смена цветов на экране происходит только один раз.

var
bm: TBitMap;

procedure TForm1.FormCreate(Sender: TObject);
begin
bm := TBitMap.Create;
bm.Width := Form1.ClientWidth;
bm.Height := Form1.ClientHeight;
with bm.Canvas do begin
Font.Name := "Arial";
Font.Size := 50;
Font.Color := clBlue;
end;
Timer1.Interval := 100;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
s: String;
Hour, Min, Sec, MSec: Word;

begin
DecodeTime(Time, Hour, Min, Sec, MSec);
with bm.Canvas do begin
Brush.Style := bsSolid;
Brush.Color := clWhite;
FillRect(ClipRect);
s := TimeToStr(Time);
TextOut((bm.Width - TextWidth(s)) div 2,
(bm.Height - TextHeight(s)) div 2, s);
Pen.Mode := pmMask;
Pen.Width := 20;
Pen.Color := clLime;
Brush.Style := bsClear;
Rectangle(bm.Width div 2 - (MSec * bm.Width) div 5000,
bm.Height div 2 - (MSec * bm.Height) div 5000,
bm.Width div 2 + (MSec * bm.Width) div 5000,
bm.Height div 2 + (MSec * bm.Height) div 5000);
end;
Form1.Canvas.Draw(0, 0, bm);
end;




Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
8-30467
ferrik
2003-01-06 22:22
2003.04.10
3D MAX


4-30657
Ihor Osov'yak
2003-02-11 17:18
2003.04.10
уникальный UID для сеанса работы - где он?


14-30583
Supreme 2
2003-03-24 20:03
2003.04.10
Конструктор LEGO на компьютере


8-30469
Groove_
2003-01-08 13:01
2003.04.10
Кто работал с DSPack2.2 помогите...


1-30419
Che
2003-03-31 03:43
2003.04.10
Совйство Caption у Button





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский