![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
![]()
Доброго времени суток .
В моей задаче необходимо "вращать" колесо паровоза, то есть просто перерисовывать спицы. Я пока ещё только на начальной стадии решения - просто хочу заполнить круг всевозможнами радиусами, но у меня где-то ошибка. Чтобы определить координату очередной точки, в которую следует провести радиус, я вычисляю длину хорды , которая стягивает дугу размерностью q радиан. Для этого я использую формулу d=2Rsin(q/2). Когда длина хорды известна можно вычислить смещение x и смещение y , умножив длину хорды на cos((180-q)/2)) и на sin((180-q)/2)) , соответственно. (изначально радиус параллельно оси x , смещение происходит по часовой стрелке.) вот код- Код:
Работает алгоритм неправильно (прикрепляю исходник), причём начиная с первого же смещения. Не пойму почему. P.S. Вообще, канечно, сложно здесь сразу вникнуть в суть моего вопроса - но я создал эту тему в надежде, что кто-то просто уже сталкивался с подобной проблемой. Последний раз редактировалось vedro-compota; 08.06.2010 в 12:40. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
1) если угол в радианах, то откуда берётся 180-q ?!
2) посмотрите темку Нарисовать на экране катящееся по горизонтали колесо с четырьмя спицами. p.s. Ваши исходник в приложении не смотрел... не разберётесь, тогда я вечерком гляну... |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 29.01.2009
Сообщений: 411
|
![]()
Быстро набросал примерчик. Посмотрите. Попробуйте менять координаты.
|
![]() |
![]() |
![]() |
#4 | |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
![]()
Дело в том, что треугольник, который образуют два радиуса и хорда - равносторонний))
цитирую вас,Serge_Bliznykov, в другой теме - Цитата:
и Getmaxy div 2; следует поставить необходимые координаты центра. Сейчас посмотрю тему "про колесо с четырьмя спицами" . Спасибо )) S@fer, благодарю. Сейчас буду смотреть. Последний раз редактировалось vedro-compota; 08.06.2010 в 13:29. |
|
![]() |
![]() |
![]() |
#5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Предлагаю такое:
Код:
I'm learning to live...
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 12.05.2010
Сообщений: 219
|
![]()
А зачем "отталкиваться" от хорд? Отталкиваться, ИМХО, нужно от угла. К примеру, есть система координат ОХУ с началом координат в центре окружности. Радиус окружности нам известен. Координаты любой точки этой окружности
по х - R*Cos(alpha); по у - R*Sin(alpha) где alpha - угол между положительным направлением оси ОХ и радиусом. А дальше, меняя угол, можно крутить-вертеть спицы, как душе угодно и задать любое их количество. ... не заметила, когда писала, что Stilet уже предложил этот вариант |
![]() |
![]() |
![]() |
#8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
![]()
I'm learning to live...
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Координаты точки в Delphi | Владимир_король | Помощь студентам | 1 | 29.04.2010 11:48 |
Вращение точки по окружности | BloodMaX | Помощь студентам | 4 | 21.12.2009 17:37 |
Имеются координаты точки. Как проверить какого цвета соседние точки на форме? | Rin | Мультимедиа в Delphi | 2 | 10.11.2009 22:47 |
даны две точки. организовать движение из точки А в точку Б окружности! | Wi1D | Помощь студентам | 6 | 23.05.2009 19:55 |
Движение точки по окружности | somwan | Общие вопросы C/C++ | 4 | 17.03.2009 16:30 |