Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 109, средняя оценка - 4.97
D.E.S.P.E.R.O.
9 / 9 / 0
Регистрация: 12.03.2009
Сообщений: 110
Завершенные тесты: 1
#1

Движение точки по окружности - C++

11.10.2012, 13:17. Просмотров 16290. Ответов 15
Метки нет (Все метки)

Подскажите, пожалуйста, формулу для расчета координат точки движущейся по окружности заданого радиуса.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2012, 13:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Движение точки по окружности (C++):

Движение точки по окружности - C++
Как задать правильно? Создать класс, в котором реализованы следующие метод: Okr(x0,y0,r) – задает движение точки по окружности . Создать...

Движение окружности по диагонали туда и обратно - C++
Вот написал функцию. Что не правильно в алгоритме? void move () { int shag=1; if (x<getmaxx()-r && y<getmaxy()-r) { ...

Точки пересечения окружности и прямой - C++
Необходимо создать программу которая находит точки пересечения окружности и прямой. Причем я задаю радиус сам, и координаты центра фигуры,...

Создание точки, окружности и элипса - C++
Создайте класс точка,которая имеет координаты . Создать производные классы-окружность и эллипс. Определить функции печати,...

Попадут ли точки в координаты окружности - C++
Добрый вечер Задание такое: Ввести координаты 5 точек и определить какая из них попадает в окружность радиуса(R) и координатами центра...

Определить принадлежность точки к окружности - C++
определить принадлежность точки к окружности x^2+y^2<=R^2 при x<0

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
NoMasters
Псевдослучайный
1753 / 1096 / 72
Регистрация: 13.09.2011
Сообщений: 3,127
11.10.2012, 13:26 #2
Тригонометрические функции в школе не проходили ещё что ли?
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
11.10.2012, 13:29 #3
R^2=sin^2+cos^2
D.E.S.P.E.R.O.
9 / 9 / 0
Регистрация: 12.03.2009
Сообщений: 110
Завершенные тесты: 1
11.10.2012, 14:16  [ТС] #4
Уточню. Есть точка с начальными координатами (x0, y0). Есть окружность радиуса r. Можно задать угол движения a.
А теперь внимание. С помощью какой формулы узнать следующее положение точки, то есть координаты (x1, y1)?

Добавлено через 1 минуту
Цитата Сообщение от NoMasters Посмотреть сообщение
Тригонометрические функции в школе не проходили ещё что ли?
Спасибо за остроумие, но в решении реальной проблемы не помогло!
Croessmah
Модератор
Эксперт CЭксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 3
Завершенные тесты: 1
11.10.2012, 14:18 #5
x1 = x0 + r * cos a
y1 = y0 + r * sin a

a-угол
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.10.2012, 14:19 #6
Цитата Сообщение от ValeryS Посмотреть сообщение
R^2=sin^2+cos^2
если немного подправить, то
http://www.cyberforum.ru/cgi-bin/latex.cgi?sin^2x+cos^2x = 1.
Движение по окружности задается формулой
x = x0 + R cos t,
y = y0 + R sin t,

t - время
D.E.S.P.E.R.O.
9 / 9 / 0
Регистрация: 12.03.2009
Сообщений: 110
Завершенные тесты: 1
11.10.2012, 14:20  [ТС] #7
Цитата Сообщение от Croessmah Посмотреть сообщение
x1 = x0 + r * cos a
y1 = y0 + r * sin a
Спасибо! Такую и пытаюсь использовать, только хочу уточнить, меняется ли угол на каждой итерации вычислений?
Croessmah
Модератор
Эксперт CЭксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 3
Завершенные тесты: 1
11.10.2012, 14:23 #8
Цитата Сообщение от D.E.S.P.E.R.O. Посмотреть сообщение
Спасибо! Такую и пытаюсь использовать, только хочу уточнить, меняется ли угол на каждой итерации вычислений?
Если не ошибаюсь, то необходимо его менять.
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.10.2012, 14:24 #9
в формуле t - параметр, только он и меняется в каждом шаге итерации
D.E.S.P.E.R.O.
9 / 9 / 0
Регистрация: 12.03.2009
Сообщений: 110
Завершенные тесты: 1
11.10.2012, 14:26  [ТС] #10
Croessmah, Thinker, спасибо большое! Ошибка была таки в том, что значение угла не менялось во времени.
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.10.2012, 14:28 #11
Цитата Сообщение от D.E.S.P.E.R.O. Посмотреть сообщение
Ошибка была таки в том, что значение угла не менялось во времени.
в формуле нет углов, а время t от 0 до +бесконечности
D.E.S.P.E.R.O.
9 / 9 / 0
Регистрация: 12.03.2009
Сообщений: 110
Завершенные тесты: 1
11.10.2012, 14:35  [ТС] #12
Цитата Сообщение от Thinker Посмотреть сообщение
в формуле нет углов, а время t от 0 до +бесконечности
Таки да, очевидно и тут Вы правы. Просто во всех источниках, с которыми столкнулся все указывали, что этот параметр именно угол. Но мне главное, что точка полетела!
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
11.10.2012, 15:38 #13
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Thinker Посмотреть сообщение
если немного подправить, то
так то да ,но я ж не готовую формулу привел а направления решения

Цитата Сообщение от Thinker Посмотреть сообщение
x = x0 + R cos t,
y = y0 + R sin t,
t - время
Цитата Сообщение от D.E.S.P.E.R.O. Посмотреть сообщение
Просто во всех источниках, с которыми столкнулся все указывали, что этот параметр именно угол.
все правильно указывали cos и sin берутся от угла а t это время
просто по правильному функции должны выглядеть так
x = x0 + R cos (t*a)
y = y0 + R sin (t*a)
где a это изменения угла во времени
например за 1 сек угол изменяется на 1 градус a=1
на 10 градусов a=10
грубо говоря это скорость полета
D.E.S.P.E.R.O.
9 / 9 / 0
Регистрация: 12.03.2009
Сообщений: 110
Завершенные тесты: 1
11.10.2012, 15:42  [ТС] #14
ValeryS, спасибо за доходчивое разъяснение. И еще одно, пришол к такому выводу, что на самом деле (x0, y0) в этой формуле - это координаты центра окружности. Прав ли я?
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
11.10.2012, 16:50 #15
Цитата Сообщение от D.E.S.P.E.R.O. Посмотреть сообщение
что на самом деле (x0, y0) в этой формуле - это координаты центра окружности. Прав ли я?
да это центр
если тебе нужно смешение
начинаем с определенного угла a0 то
C
1
2
x = x0 + R* cos (t*a+a0)
 y = y0 + R *sin (t*a+a0)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2012, 16:50
Привет! Вот еще темы с ответами:

Движение точки - C++
Очень нужна помощь с таким заданием: написать движение точки по ломанному пути( туда и обратно ) на входе: массив точек -...

Найти точки пересечения гиперболы и окружности - C++
Нужно найти точки пересечения гиперболы и окружности. Если смотреть с матиматической точки зрения то у окружности и гиперболы может бить...

Найти точки пересечения отрезка и окружности - C++
Here i go again :) Нужен код готовой функции для поиска точек пересечения отрезка и окружности в 2D, может есть у кого готовая...

Определить взаимное расположение точки и окружности - C++
Определить взаимное расположение точки с координатами (x0, y0) и окружности радиуса R с центром в точке (x1, y1)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.10.2012, 16:50
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru