Официальный сайт студ.городка НГТУ
Программирование и БД » анимация сортировки си 

#1  10.02.10 12:38

анимация сортировки си

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

логика решения такая:
сначала выводиться массив исходный, с некоторой задержкой (delay) поверх него записывается массив с первой перестановкой и т.д., пока не получится отсортированный массив.


какой функцией перезаписать предыдущий вывод?
в настоящее время используется sprintf() для сохранения массива в строку и outtext() для вывода этой строки в цвете.
но sprintf вывод все перестановку в одну строку пока не ограничиться размером экрана.
гуглить не помогло:)

Спасибо за любую помощь.

Offline

#2  10.02.10 13:14

Re: анимация сортировки си

\n - для переноса стоки
cls - для очистки экрана

Offline

#3  10.02.10 14:35

Re: анимация сортировки си

Jaguar, Спаисбо за развернутый комментарий

если применять данный совет "\n - для переноса стоки" к функции sprintf, то эта функция не выводит на экран, а записывает просто в буфер массив, как строку. Это требуется, чтобы выводить цветной шрифт.

если \n использовать в outtext(),  то его параметр тока выводимые символы, и спецсимволы он не воспринимает.

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

Спасибо.

Исправлено Leto (10.02.10 15:22)

Offline

#4  10.02.10 15:49

Re: анимация сортировки си

Mozg_RUS,
cprintf не работает в графическом режиме,
кода слишком много:)

выкладываю кусок -

Код::

//функция сортировки
цикл прохода массива

.....

//vivod massiva vse prohody
for(j=0;j<8;j++)
{

//cvet menyaemih peremennih
if (A[i]==A[j]||A[i+1]==A[j])
{
setcolor(15);          //peremeshaemie


}
else {
setcolor(15);//prostie

    }


sprintf(s," %d", A[j]);

outtext(s);//vivodit cvetno, no ne zatiraet prediduchii vivod


delay(50);//zadergka



}

.....//главная функция и так далее

Исправлено Leto (10.02.10 15:49)

Offline

#5  10.02.10 15:55

Re: анимация сортировки си

Mozg_RUS,
а вот тут можно поподробнее, ибо при использовании этого счастья тоже идет наложение, может я не правильно использую?

Код::

int x=0, y=10;

//vivod massiva vse prohody
for(j=0;j<8;j++)
{

//cvet menyaemih peremennih
if (A[i]==A[j]||A[i+1]==A[j])
{
setcolor(2);          //peremeshaemie


}
else {
setcolor(15);//prostie

    }


sprintf(s," %d", A[j]);

outtextxy(x,y,s);//vivodit cvetno, no ne zatiraet prediduchii vivod


delay(50);//zadergka

x=x+20;

}

и получается, что они все печатаются друг на друга, но не удаляется предыдущий вывод.
каша в общем получается.

Offline

#6  10.02.10 16:16

Re: анимация сортировки си

Mozg_RUS, спасибо,
получается, но маленечко не то, не так красиво как я думала:)

значит где-то в логике ошиблась.

надо чтобы как бы чиселки переставлялся, а массив оставался на экране.

буду придумывать, как это сделать.

Offline

#7  11.02.10 09:44

Re: анимация сортировки си

а зачем в графическом режиме выводить массив?

Offline

#8  11.02.10 10:42

Re: анимация сортировки си

чтобы затереть строку, нужно вывести её повторно, используя цвет фона.
// К.О.

Offline

#9  11.02.10 12:29

Re: анимация сортировки си

Jaguar,
у меня удачно раскрашивается массив и в текстом режиме ( используя графический режим я усложнила себе жизнь:))
Теперь, я хочу, чтобы у меня анимировалась только перестановка элементов в массиве, а не просто массив перезаписывался.
То есть массив весь на экране, а меняются как нить прикольно цифры, которые переставляются.

Не так все просто, как я думала:)

Fatboy, спасибо:)

Offline

#10  11.02.10 14:10

Re: анимация сортировки си

я нашла волшебную функцию gotoxy (), теперь у меня циферки которые переставляются просто другого цвета.

работаем дальше:)

Offline

#11  13.02.10 01:42

Re: анимация сортировки си

думаю без DX10 тут не обойтись.

Offline

#12  13.02.10 22:11

Hix
Профиль

Re: анимация сортировки си

R0mm, OPENGL. + расширения.
Leto, Самый простой вариант - после каждой итерации проверки просто чистить экран и завново выводить массив. На современных машинах это будет происходить ооооочень быстро. НО вы простых путей не ищите. В общем работайте дальше.

Offline

Программирование и БД » анимация сортировки си 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.028 сек.
Выполнено 11 запросов.