Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 33 • Страница 1 из 21  2  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 02.01.2004
Откуда: Оренбург
В общем, достался мне проект "Часы со стрелками". Корпус уже написан, но не знаю, как заставить нормально двигаться стрелку, то есть, чтобы она описывала своим концом окружность. У меня уже получался ромбик и даже прямоугольничек, но заветной окружности не виидать, как своих ушей:(
Помогите мне, я вас очень прошу. Хотя бы идейку подкиньте. Ну или совсем уже готовый фрагмент. Пожалуста, побыстрее, а то в четверг уже сдавать. Мне бы понять, как стрелки двигать, а дальше легко...



Партнер
 

Member
Статус: Не в сети
Регистрация: 31.01.2004
Откуда: Москва
домой приду посмотрю, если не потер еще, то скину на мыло
просто писал лет 6 назад, так что не обещаю, но... :oops:
мыло?

_________________
Ломать не строить, это уметь надо!


 

Member
Статус: Не в сети
Регистрация: 02.01.2004
Откуда: Оренбург
Мое мыло? artemon@rbcmail.ru
SirGun слушай, может у тебя литература какая-нить осталась, где описывается, как это делать. А то нужно очень срочно.

Добавлено спустя 5 минут, 53 секунды:
Слушайте, а чего две темы создалось. Я вроде Отправить тыкал один раз... А можно из как-нибудь две в одну.. Или еще как..[/i][/b]


 

Продавец
Статус: Не в сети
Регистрация: 21.10.2003
Откуда: Москва
Стрелка в графическом режиме двигается да? Ну а в чем тогда проблема, рисуй линию одной длинны, один конец всегда в одном месте а для второго тебе надо 60 координат, я бы их сначало на листочке прикинул, после чего глядишь и формула в голову придет!

_________________
★ ★ ★ ||| ★ ★ ★


 

Member
Статус: Не в сети
Регистрация: 02.01.2004
Откуда: Оренбург
Рональдо
Ты цикл чтоль имеешь ввиду? Если да то каким лучше? А вообще, конечно, извини за наглость, но не мог бы ты написать? Ну оччень надо...


 

Member
Статус: Не в сети
Регистрация: 31.01.2004
Откуда: Москва
Artemon литературы нету, тебе нужно лишь пересчитывать координаты верхней точки прямой,
центральная точка зафиксирована.
ежели вечером дома найду, обязательно перешлю
есть кстати и электронные часы в паскале, так что ежели что ...

_________________
Ломать не строить, это уметь надо!


 

Member
Статус: Не в сети
Регистрация: 02.01.2004
Откуда: Оренбург
SirGun
Заранее спасибо. Понятно что пересчитывать надо, но в цикле это сделать не получается. Вот ты просто попробуй, если у тебя есть ТР, нарисовать линию и изменять у нее X и Y, а центр оставлять не изменным, как ты и говоришь. Также пробовал изменять просто Х, но тогда стрелка уезжает за пределы самих часов. Кстати, электронные часы делает мой друг, и они на мой взгляд намного проще в написании


 

Member
Статус: Не в сети
Регистрация: 31.01.2004
Откуда: Москва
Artemon ну да, цикл с задержкой пересчета в 1 сек.

_________________
Ломать не строить, это уметь надо!


 

Member
Статус: Не в сети
Регистрация: 02.01.2004
Откуда: Оренбург
Одинаковой длины их не получится сделать, так как и Х и Y увеличиваются, поэтому они будут неуклонно расти, значит нужно в цикле проверять еще какое-то условие, но пока не могу догнать, какое...


 

Member
Статус: Не в сети
Регистрация: 31.01.2004
Откуда: Москва
да электронные проще
там надо только цвет сегментов в цифрах с белого на чёрный и наоборот менять

_________________
Ломать не строить, это уметь надо!


 

Member
Статус: Не в сети
Регистрация: 25.11.2003
Откуда: Earth
Рональдо Мама дорогая:
Цитата:
Стрелка в графическом режиме двигается да? Ну а в чем тогда проблема, рисуй линию одной длинны, один конец всегда в одном месте а для второго тебе надо 60 координат, я бы их сначало на листочке прикинул, после чего глядишь и формула в голову придет!


Синус и косинус ещё не отменяли.
Стрелка - линия между точкой, чьи координаты= константа и точкой летающей по кругу - с координатой= константа+(время* косинус/синус(для х/у соответственно)*длина стрелки).

_________________
Какой нынче этап конца света?


 

Member
Статус: Не в сети
Регистрация: 02.01.2004
Откуда: Оренбург
Ну подскажите, ну пожалуйста-а-а-а

Добавлено спустя 1 минуту, 54 секунды:
Evgeny-114 Если тебя не затруднит, можно попроще, а то мы этого еще не проходили


 

Member
Статус: Не в сети
Регистрация: 13.04.2004
Откуда: Москва
Artemon
Ты что такое sin знаешь? Тогда : есть угол f, каждую сек увеличивается на 6 градусов=pi/30
радиан, если у стрелки длина L, а начало в (0,0), то ее так сказать конец:
X = L*cos(f);
Y = L*sin(f);


 

Member
Статус: Не в сети
Регистрация: 20.01.2003
Откуда: Киев
Evgeny-114 Опередил ты меня.
Artemon Объясняю проще: Центр неподвижная точка с координатами (x1,y1) вторая точка считается по формуле
y=acos(k)
x=asin(k)
y,x - координатыб а - радиус окружности.
х должен менятся от -а до а
вот пример функции на сях.
void CALLBACK ProcLeft(void){
_a-= PI/100;
x=(int)(_r*cos(_a)*cos(_b) + 50);
y=(int)(_r*sin(_a)*cos(_b) + 50);
z=(int)(_r*sin(_b) + 50);
display();
}


Последний раз редактировалось void 18.04.2004 15:42, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 02.01.2004
Откуда: Оренбург
Galaxy Вот именно что я не знаю что это такое. Может можно как-нибудь по-другому объяснить. Ну я же не виноват, что я такой тупой...


 

Member
Статус: Не в сети
Регистрация: 25.11.2003
Откуда: Earth
У меня паскаля нет. И не помню я его. А формулу я тебе и так уже дал... (только, смотрю, неправильную :)... но понять можно...)

Попробую..

Секундная:
Начинаем Цикл от i=1 до i=60

координата X1 точки конца стрелки = координата Х центра + sin(i)*длина стрелки.
координата Y1 точки конца стрелки = координата Y центра + cos(i)*длина стрелки.
Рисуем линию от центра(X,Y) до конца(X1,Y1)


Что бы стереть предыдущее положение сделай, например так:

координата X2 точки конца стрелки = координата Х центра + sin(i-1)*длина стрелки.
координата Y2 точки конца стрелки = координата Y центра + cos(i-1)*длина стрелки.
Рисуем линию цветом фона(чёрный)от центра(X,Y) до конца(X2,Y2)

Delay(1000); {пауза 1000мсек}

Конец цикла.

Конечно криво, но для того что бы понять - пойдёт... там сам разберёшься и подправишь- просто времени нет сообразить сейчас и меня отвлекают...
Часовую и минутную сделаешь по аналогии.

Удачи...

_________________
Какой нынче этап конца света?


 

Member
Статус: Не в сети
Регистрация: 20.01.2003
Откуда: Киев
Глянь я кусок кода добавил в предидущее сообщение.


 

Member
Статус: Не в сети
Регистрация: 13.04.2004
Откуда: Москва
можно так:
x:=0;
y:=L;
for i:=1 to 15
begin
dx := L*sqrt(1-x*x)*3.14/60;
dy:= -L*sqrt(1-y*y)*3.14/60;
x := x+dx;
y := y+dy;
рисуй стрелку;
end

это для первых 15 сек

Добавлено спустя 3 минуты, 55 секунд:
void
Жуть - трехмерные часы? :D


 

Продавец
Статус: Не в сети
Регистрация: 21.10.2003
Откуда: Москва
Evgeny-114

Гы... торможу... совсем забыл уже школу :)

void

Респект!

Круто наверное часы под углом нарисовать, чтобы стрелки объемные были :D

_________________
★ ★ ★ ||| ★ ★ ★


 

Member
Статус: Не в сети
Регистрация: 13.04.2004
Откуда: Москва
Artemon
напостил и подумал: а sqrt ты знаешь? :)


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 33 • Страница 1 из 21  2  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan