IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Часы, как передвигать стрелки???
LP.by
сообщение 5.01.2007 17:14
Сообщение #1


проста_angEL
*

Группа: Пользователи
Сообщений: 21
Пол: Мужской
Реальное имя: pasha

Репутация: -  0  +


программа делает часы "с анимацией" т.е. двигаются по циферблату часовая и минутная стрелки
нужно чтоб стрелки можно было двигать с помощью кнопок "влево" и "вправо"





 
Uses
Graph, CRT;
Var
d,r,r1,r2,rr,k,x1,y1,x2,x01,y01,y2: Integer;
Xasp,Yasp : Word;
Begin
d := detect; InitGraph(d, r, '');
k := GraphResult;
if k <> grOK then
WriteLn(GraphErrorMSG(k))
else
begin
x1 := GetMaxX div 2;
y1 := GetMaxY div 2;
GetAspectRatio(Xasp, Yasp);
r := round(3*GetMaxY*Yasp/8/Xasp);
r1 := round(0.9*r);
r2 := round(0.95*r);
Circle(x1,y1,r);
Circle(x1,y1,round(1.02*r) );
for k := 0 to 59 do
begin
if k mod 5=0 then
rr := r1
else
rr := r2;
x01 := x1+Round(rr*sin(2*pi*k/60));
y01 := y1-Round(rr*Xasp*cos(2*pi*k/60)/Yasp);
x2 := x1+Round(r*sin(2*pi*k/60));
y2 := y1-Round(r*Xasp*cos(2*pi*k/60)/Yasp);
Line(x01,y01,x2,y2)
end;
SetWriteMode(XORPut);
SetLineStyle(SolidLn,0,ThickWidth);
r := 0;
repeat
for k := 0 to 59 do if not KeyPressed then begin
x2 := x1+Round(0.85*r1*sin(2*pi*r/60/12));
y2 := y1-Round(0.85*r1*Xasp*cos(2*pi*r/60/12)/Yasp);
x01 := x1+Round(r2*sin(2*pi*k/60));
y01 := y1-Round(r2*Xasp*cos(2*pi*k/60)/Yasp);
Line(x1,y1,x2,y2);
Line(x1,y1,x01,y01) ;
Delay(6000);
Line(x1,y1,x01,y01);
Line(x1,y1,x2,y2);
inc®;
if r=12*60 then
r := 0
end;
until KeyPressed;
if ReadKey=#0 then k := ord(ReadKey);
CloseGraph;
end;
End.




--------------------
<image deleted>
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 14:48
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"