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

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

25.08.2008, 23:49. Показов 3428. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru