Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите в решении задачи
Форум программистов > Системное программирование > Visual Basic
Sortudo
Помогите пожалуйста в решении задачи на VBA. Задача следующая:
Смоделировать движение точки, нарисованной на шаре, причем шар катится по плоскости (вид сверху).
-Шар на котором нарисована точка представляет собой обычный круг (панель рисование) и точка – это точно такой же круг, только поменьше.
-движение шара у меня смоделировать получилось и точка по нему движется, не выходя за его границы
-осталось сделать, чтобы эта точка после того, как она дойдет до краев так называемого «шара» должна исчезнуть на некоторое время (так как мы видим движение сверху), это можно сделать с помощью свойства Visible. Но мне не понятно как записать условие «точка дошла до одной из границ круга»? Это условие можно сформулировать, если б при движении шара и точки у меня изменялись их координаты, но у меня положение шара и точки изменяется не с помощью изменения координат их центров, а с помощью изменения свойств left и top. Пока не могу придумать как это сделать. Буду очень благодарна за вашу помощь.
SERGMov
Если есть left и top - можно легко перейти к координатам центра путем добавления величины радиуса.
Vlanib
А большой шар у тебя в каких границах перемещается и перемещается ли вобще, или он статичен и только точка на нем движется?
jmp
Центр окружности
Shapes("Овал 3").Top = Shapes("Овал 2").Top + Shapes("Овал 2").Width / 2 - Shapes("Овал 3").Width / 2
Shapes("Овал 3").Left = Shapes("Овал 2").Left + Shapes("Овал 2").Height / 2 - Shapes("Овал 3").Height / 2
Sortudo
Vlanib
шар перемещается в пределах поля excel, плюс при нажатии на кнопки вверх, вниз, вправо, влево - он меняет направление движения соответственно.


То есть получается, точка будет находится на границе большого круга тогда, когда расстояние между центрами точки и круга будет равно радиусу большого круга. Тогда остается вычислить расстояние между центрами окружностей, для этого нужно знать координаты центров. Но у меня координаты вообще не используются, а используются лишь left и top, но как было сказано
Цитата(SERGMov @ 26:08:2008 - 03:03) *
Если есть left и top - можно легко перейти к координатам центра путем добавления величины радиуса.

прибавив радиус я получу координаты центра и тогда по формуле вычислю расстояние...и все! Я правильно понимаю?
jmp
Формула:
(x-xm)^2 + (y-ym)^2 = R^2

xm и ym - начало коордниат
Vlanib
Если еще актуально, вот накатал примерный черновой проектик. Комменты лень было писать. Думаю сам разберешься. Управление чисто стрелками. Вобщем будут вопросы - пиши! wink.gif
Sortudo
Vlanib, большое спасибо. Посмотрела файл, сделала кое-какие исправления, теперь вроде все работает smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.