User 13275593 Ответов: 1

Как я могу заставить объекты двигаться по круговой траектории?


Я хочу переместить круг по круговой траектории(окружность другого круга). Как я могу это сделать?Любая помощь будет оценена по достоинству, но не ссылки от google. Потому что я искал его, но не мог найти никакой помощи в моей задаче. Статья, объясняющая это, будет более оценена, и я думаю, что нет никакой необходимости в источнике.

Что я уже пробовал:

я пробовал перемещать координаты x и y объекта, но он всегда движется по горизонтальной или вертикальной линии

Afzaal Ahmad Zeeshan

Какие предметы? Какой фреймворк вы используете?

1 Ответов

Рейтинг:
4

OriginalGriff

Круговое движение не является сложным, если вы правильно меняете координаты x и y: для прямой линии xn+1 = иксн + с1 и yn+1 = годн + с2 где С1 и С2-постоянные величины.
Для круга они не являются константами - их нужно пересчитывать для каждого шага:
иксн = r * cos(a) и yн = r * sin(a), где r-радиус, а a-угол в радианах. Для каждого шага вы немного меняете его (насколько это зависит от вас и насколько точно вам нужен ваш круг: чем больше приращение, тем менее круглым и более полигональным он выглядит). Попробуйте 0.1 и проверьте его значение против pi * 2, чтобы увидеть, достигли ли вы конца круга.


[no name]

Пожалуйста, дайте мне пример кода.

OriginalGriff

Ты ведь шутишь, правда?
Вы не можете конвертировать
x = r * cos(a)
в самом VB?

[no name]

Я путаюсь в определении переменных

OriginalGriff

Вы не можете определить переменную самостоятельно? :OMG:

Dim nameOfMyVariable As typeOfMyVariable = initialValueForMyVariable

Напр.:

Dim i как целое число = 666

Вам нужно вернуться к основам и снова подготовиться к своим первым нескольким занятиям...

[no name]

я имею в виду, можете ли вы сказать мне значения угла и радиуса(как образец), а затем сообщить новые координаты объекта

OriginalGriff

Как, черт возьми, ты думаешь, я узнаю, какой радиус ты хочешь, чтобы у твоего круга был? Попробуй 100. Если это слишком мало, увеличьте его. Если он слишком велик, уменьшите его вдвое.
Углы: начните с нуля. Пройдите до 2 * pi. "радианы" - это большая подсказка здесь...

Ну же - начните думать сами, мы не можем микроуправлять всем вашим приложением, мы даже не можем видеть ваш экран!

Ralf Meier

@Абдул:
Возможно, вам стоит поискать примеры, которые показывают, как кодируются аналоговые часы. Я полагаю, что ваше требование соответствует движению одной из его рук.
Извините... но мы никак не можем сделать это для тебя ... вы должны сами увидеть, что вам нужно и как это ведет себя лучше всего ...

OriginalGriff

Это основы математики и геометрии, которые вы изучали в четырнадцать лет или около того - вероятно, раньше!

[no name]

К сожалению для всех. Теперь я попробовал и понял этот метод . Спасибо!

OriginalGriff

Всегда пожалуйста!

Nakhia_ind

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