20.03.2011, 17:50 | #1 (permalink) |
Sparkling
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
|
Заставить двигаться по кругу
Точка движется по кругу. зелёная точка. что нужно сделать чтобы вместо точки двигался какой-нить символ? тот же "%". пока удалось засунуть его только в угол программы (( Код:
uses crt,graph; var x0,y0,x1,y1,r,gd,gm:integer; i:longint; begin gd:=detect; initgraph(gd,gm,''); x0:=getmaxX div 2; y0:=getmaxY div 2; r:=y0-100; i:=1; repeat x1:=x0+round(r*sin(i*pi/180)); y1:=y0-round(r*cos(i*pi/180)); setcolor(green); outtextXY(x, y, '%)'); circle(x1,y1,1); delay(1000); setcolor(0); circle(x1,y1,1); i:=i+1; until keypressed; end. |
20.03.2011, 17:50 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Интересующие вас ответы могут быть тут Куда двигаться дальше? Как заставить видеоадаптер работать на разрешении 1024х576 ? Как заставить gif двигаться как заставить работать 2 вентилятора от одного контроллера Как заставить светиться радиолампу? |
21.03.2011, 08:58 | #2 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Вот малость исправленный вариант:
Код:
uses crt,graph; var x0,y0,x1,y1,i,r,gd,gm:integer; begin gd:=detect; initgraph(gd,gm,''); x0:=getmaxX div 2; y0:=getmaxY div 2; r:=y0-100; i:=0; repeat x1:=x0+round(r*sin(i*pi/180)); y1:=y0-round(r*cos(i*pi/180)); setcolor(green); outtextXY(x1, y1, '%)'); circle(x1,y1,1); delay(10); setcolor(0); circle(x1,y1,1); if i<361 then inc(i) else i:=0; until keypressed; end. У вас была выставлена слишком большая задержка - секунда, поэтому вы и не видели результата
__________________
Убить всех человеков! |
21.03.2011, 16:01 | #3 (permalink) |
Sparkling
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
|
не совсем то, что я имела ввиду)
у вас получилась линия в виде круга, а я хотела чтобы двигалась настолько быстро, чтобы только мигал значок "%" по траектории круга, а не вычерчивал его, т.е. чтобы не был видел в каждой точке круга, а например в восьми. |
21.03.2011, 16:30 | #4 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
uses crt,graph; var x0,y0,x1,y1,i,r,gd,gm:integer; begin gd:=detect; initgraph(gd,gm,''); x0:=getmaxX div 2; y0:=getmaxY div 2; r:=y0-100; i:=0; repeat x1:=x0+round(r*sin(i*pi/180)); y1:=y0-round(r*cos(i*pi/180)); SetBkColor(Black); If (i mod 45)=0 then begin setcolor(green); outtextXY(x1, y1, '%)'); delay(100); setcolor(black); outtextXY(x1, y1, '%)'); end; if i<361 then inc(i) else i:=0; until keypressed; end. |
|
21.03.2011, 18:28 | #5 (permalink) |
Sparkling
Регистрация: 29.09.2010
Сообщений: 98
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 93
|
То что надо! спасибо большое, продолжаю трудится над монстрами =)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
22.03.2011, 06:08 | #6 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Более конкретно задачи ставьте, а то сначала малопонятно было, что именно вам надо сделать.
Я бы сделал сначала стирание на старом месте, а потом рисование на новом месте, чтобы по выходу из цикла символ на экране оставался.
__________________
Убить всех человеков! |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|