Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 494

/ вопрос открыт /

Здравствуйте уважаемые эксперты! Пытался сделать нечто похожее на индикатор радиолокационной станции (радара), там луч движется по кругу 0 - 360 градусов, алгоритм примерно такой как в вопросе 2 487. Трудность заключается в том, что при при относительно небольшом радиусе и высокой скорости вращения на крайних точках окружности движение не равномерное (ускоряется) так как рисуется линия от центра к точке на окружности и координата по вертикали (y) является функцией координаты по горизонтали y=f(x). Подскажите как сделать так чтобы луч двигался равномерно, то есть положение линии было функцией от угла между линией и началом отсчета. Я к сожалению не смог найти в справочной литературе подобный метод. Заранее благодарен. НикС.

НикС Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: НикС (статус: Посетитель)
Вопрос отправлен: 8 марта 2009, 15:46
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 8 марта 2009, 18:10; участников в обсуждении: 3.
min@y™

min@y™ (статус: Доктор наук), 8 марта 2009, 16:05 [#1]:

Функция от угла - это ж синус или косинус. Не понимаю проблемы.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Dron

Dron (статус: Студент), 8 марта 2009, 16:05 [#2]:

А выводите радар с помощью какого компонента?
С уважением.
Dron

Dron (статус: Студент), 8 марта 2009, 16:07 [#3]:

Действительно, если угол равномерно меняется от 0 до 360, то луч длиной A будет иметь координаты:
x = x0 + A*Cos(угол);
y = y0 + A*Sin(угол);
(x0; y0) - центр.
С уважением.
Вадим К

Вадим К (статус: Академик), 8 марта 2009, 18:10 [#4]:

А как меняете угол, не в таймере случайно? Если так и таймер выставлен на значение меньше 52, то неравномерность гарантирована. Ведь значение таймера, это не время, через которое он "тикнет", а время через которое он попробует тикнуть. То есть, тикнуть он может и гораздо позже.
А во вторых, видимая неравномерность может быть оптическим обманом. Ведь как не улучшать "равномерность", движение всё равно будет дискретным.
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:32
Выполнено за 0.02 сек.