![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.06.2008
Сообщений: 32
|
![]()
помогите с прогой у меня должен реять флаг,а он ещё и мигает.как убрать мигание?
вот прога:Program V23_N12; uses graph,crt; var grDriver,grMode,ErrCode: Integer; i,x1,x2,Size,j : word; P,P1 : Pointer; begin grDriver := Detect; InitGraph(grDriver, grMode,''); ErrCode := GraphResult; randomize; if ErrCode = grOk then begin { Do graphics } setcolor(1+random(15)); for j:=0 to 100 do begin x1:=250;x2:=303; for i:=0 to 1 do begin Arc(x1, j+150, 45, 135, 40); Arc(x2, j+90, 225, 315, 40); x1:=x1+106; x2:=x2+106; end; end; line(438,119,438,218); Size := ImageSize(221, 100, 439, 250); GetMem(P, Size);{‚뤥«Ґ*ЁҐ ¬Ґбв Ї®¤ Є авЁ*Єг ў ¤Ё* ¬ЁзҐбЄ®© Ї ¬пв©} GetImage(221, 100, 439, 250, P^); ClearDevice; for j:=0 to 100 do begin x1:=250;x2:=303; for i:=0 to 1 do begin Arc(x2, j+150, 45, 135, 40); Arc(x1, j+90, 224, 315, 40); x1:=x1+106; x2:=x2+106; end; end; line(438,122,438,221); Size := ImageSize(221, 100, 439, 250); GetMem(P1, Size); GetImage(221, 100, 439, 250, P1^); ClearDevice; line(220,115,220,479); while not keypressed do begin PutImage(221, 100, P^, XorPut); delay(10000); PutImage(221, 100, P^, XorPut); PutImage(221, 100, P1^, XorPut); delay(10000); PutImage(221, 100, P1^, XorPut); end; CloseGraph; end else Writeln('Graphics error:', GraphErrorMsg(ErrCode)); end. |
![]() |
![]() |
![]() |
#2 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
В дос Паскале от мерцания ты врядли избавишься.
У меня есть код для развевающегося флага для TurboC и для QBasic, правда отрисовка флага процедурная (не из картинки). Если подойдет переведешь на Паскаль, исходники и экзешник для демонстрации во вложении.
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)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 15.06.2008
Сообщений: 32
|
![]()
а мне как раз и надо самому флаг нарисовать,то что ты мне файлы дал они у меня не пашут.мож паскалевский файл скинуть а то я сам не смогу перевести.
|
![]() |
![]() |
![]() |
#4 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Если ты свою программу V23_N12 сам писал, ты переведешь, твоя программа сложнее, переводи с С++, там структура программы более похожа, все таки TurboC, граф режим тот же, да и объявление переменных, заголовки.
Да и незнаю я досовский паскаль.
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)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
перевёл программку Мутабора на Pascal:
Код:
mutabor, к слову просто, у меня тоже не получилось запустить откомпилированную программку - либо неправильно подсовывал для flag.exe BGI файлы, либо они несовместимы в DOS Pascal и turbo C впрочем, это уже неважно ;-)) Кстати, если бы она у меня запустилась, вряд ли я стал бы её переписывать на Pascal... :-) а так захотелось посмотреть на флажок :-) |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 20.06.2008
Сообщений: 95
|
![]()
glasian, в своей програмке попробуй заменить кусок:
while not keypressed do begin PutImage(221, 100, P^, XorPut); delay(10000); PutImage(221, 100, P^, XorPut); PutImage(221, 100, P1^, XorPut); delay(10000); PutImage(221, 100, P1^, XorPut); end; на следующий: while not keypressed do begin PutImage(221, 100, P^, NormalPut); delay(20000); PutImage(221, 100, P1^,NormalPut); delay(20000); end; по-моему, результат улучшился ![]()
Не забывайте оставлять отзывы (кнопочка в левом нижнем углу сообщения)
![]() |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 20.06.2008
Сообщений: 95
|
![]()
Так как большая часть изображения статична, а мерцание краев заметно меньше
Не забывайте оставлять отзывы (кнопочка в левом нижнем углу сообщения)
![]() |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 20.06.2008
Сообщений: 95
|
![]()
А вообще, причины мерцания как миниум две:
1) С помощью стандартных средств паскаля (к которым относится и PutImage) картинка рисуется слишком долго. 2) Нет синхронизации начала рисования картинки с начальным моментом прорисовки экрана и в результате ты в одном кадре можешь увидеть часть первой картинки и часть второй (ну или пустоту)
Не забывайте оставлять отзывы (кнопочка в левом нижнем углу сообщения)
![]() |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 15.06.2008
Сообщений: 32
|
![]()
спс большое
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ПОМОГИТЕ с графикой в ПАСКАЛЕ!! | Marat.kmr | Фриланс | 4 | 05.06.2008 22:22 |
Помогите с графикой | tagjik | Помощь студентам | 4 | 03.06.2008 08:05 |
помогите пожалуйста с графикой | s014613 | Помощь студентам | 2 | 23.05.2007 15:00 |
Помогите с графикой (Простой вопрос) | niva622 | Помощь студентам | 6 | 17.01.2007 15:59 |