Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 24.08.2008
Сообщений: 8

Смоделировать движение

25.08.2008, 23:49. Показов 3452. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста в решении задачи на VBA. Задача следующая:
Смоделировать движение точки, нарисованной на шаре, причем шар катится по плоскости (вид сверху).
-Шар на котором нарисована точка представляет собой обычный круг (панель рисование) и точка – это точно такой же круг, только поменьше.
-движение шара у меня смоделировать получилось и точка по нему движется, не выходя за его границы
-осталось сделать, чтобы эта точка после того, как она дойдет до краев так называемого «шара» должна исчезнуть на некоторое время (так как мы видим движение сверху), это можно сделать с помощью свойства Visible. Но мне не понятно как записать условие «точка дошла до одной из границ круга»? Это условие можно сформулировать, если б при движении шара и точки у меня изменялись их координаты, но у меня положение шара и точки изменяется не с помощью изменения координат их центров, а с помощью изменения свойств left и top. Пока не могу придумать как это сделать. Буду очень благодарна за вашу помощь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.08.2008, 23:49
Ответы с готовыми решениями:

Смоделировать движение звезд
Народ!!!надеюсь что вы поможете мне с этим заданием) Может кто встречал задачу: Смоделировать движение звезд видимых через иллюминатор...

Смоделировать движение шарика на бильярдном столе
Помогите пожалуйста в решении задачи на VBA. Задача следующая: смоделировать движение шарика на бил-ном столе....вернее как напистаь...

Смоделировать движение заряженной частицы в однородном магнитном поле
движение заряженной частицы в магнитном поле!! помогите смоделировать движение или хотябы с чего начать??

5
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
26.08.2008, 09:56
Раз уж у вас шар, то Width и Height одинаковые.
Visual Basic
1
2
3
4
5
6
7
8
9
R = Shar.Width \ 2
Xc = Shar.Left + R
Yc = Shar.Top + R
' проверяем точку (x,y)
If (Xc-x)^2 + (Yc-y)^2 <= R^2 Then
    ' (x,y) внутри шара
Else
    ' (x,y) снаружи
End If
Добавлено через 1 минуту 48 секунд
PS: А у вас при движении точки учитывается кривизна шара? Точка движется с переменной скоростью?
0
0 / 0 / 0
Регистрация: 24.08.2008
Сообщений: 8
27.08.2008, 11:09  [ТС]
Кривизна шара не учитывается. Вот уравнения, которые описывают движение точки:
point.Left = shar.Left * rt / R
point.top=shar.top * rt / R
При использовании этих уравнений получается, что точка никогда и не выходит за пределы шара, а движется только от одной границы "шара" до другой, мне надо просто сформулировать условие: если "точка дошла до одной из границ шара", тогда point.visible=false и t = Timer: Do While Timer - t < 1: DoEvents: Loop, то есть получится, что при достижении одной из границ точка исчезнет на 1 секунду, но как записать, что она дошла до одной из границ?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
27.08.2008, 20:35
Надо делать все движения относительными друг от друга.
1. Шар катится с постоянной скоростью (или даже если с переменной, все равно). Его координаты вычисляются примерно так:
Visual Basic
1
2
x = x + v*dt  'x - текущая координата, v - текущая скорость
'v = v + a*dt^2 / 2  'если у шара есть ускорение a
2. Точка на поверхности шара движется по окружности относительно центра шара. В проекции "вид сверху" получится примерно так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
w = v / R  'w - угловая скорость, R - радиус шара
al = al + w*dt  'al - текущай угол повотора, 
While al > 2*pi
    al = al - 2*pi
Wend
While al < 0
    al = al + 2*pi
Wend
xt = x + R * cos(al)  'абсолютная координата точки
If al < pi Then
    ' точка сверху, ее видно
Else
    ' точка снизе, не видно
End If
Что не понятно, спрашивай.
0
0 / 0 / 0
Регистрация: 24.08.2008
Сообщений: 8
31.08.2008, 13:59  [ТС]
Все понятно, спасибо) Теперь у меня шар с точкой движется так как надо, правда есть одна небольшая проблемка - когда при нажатии клавиши шар изменяет направление движения получается, что точка смещается, то есть она движется так как надо по той же траектории, но немного в стороне от шара..как это исправить?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
01.09.2008, 19:13
Это была чисто теория для случая линейного движения в одной координате X. Для двух координат (X,Y) надо эту теорию засширить до векротов и работать с ними. А потом уже нарисовать шар и точку по вычисленым векторам не составит труда.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.09.2008, 19:13
Помогаю со студенческими работами здесь

Смоделировать движения электрона вокруг ядра атома
Создать приложение , результат которого является моделирование движения электрона вокруг ядра атома. Движение осуществляется по...

Смоделировать на компьютере последовательность бросаний несимметричной монеты
Смоделировать на компьютере последовательность бросаний несимметричной монеты. Смещение центра тяжести монеты задается величиной p,...

Смоделировать движение.
Смоделировать движение бильярдного шара, по которому стукнули кием с начальной скоростью V под углом 45 градуссов к краю стола.Размер стола...

Смоделировать движение сверхзвукового самолета
дана блок-схема в фортране, необходимо смоделировать движение сверзвукового самолета в паскале, помогите пожалуйста, никак не могу...

Как смоделировать движение точки
Я новичок в матлабе, подскажите пожалуйста, есть 2 массива t1=0:1:10 и t2=0:1:10, необходимо смоделировать движение точки, и посмотреть как...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru