Помогите в решении задачи

Тема в разделе "Visual Basic", создана пользователем Sortudo, 25 авг 2008.

  1. Sortudo

    Sortudo Гость

    Помогите пожалуйста в решении задачи на VBA. Задача следующая:
    Смоделировать движение точки, нарисованной на шаре, причем шар катится по плоскости (вид сверху).
    -Шар на котором нарисована точка представляет собой обычный круг (панель рисование) и точка – это точно такой же круг, только поменьше.
    -движение шара у меня смоделировать получилось и точка по нему движется, не выходя за его границы
    -осталось сделать, чтобы эта точка после того, как она дойдет до краев так называемого «шара» должна исчезнуть на некоторое время (так как мы видим движение сверху), это можно сделать с помощью свойства Visible. Но мне не понятно как записать условие «точка дошла до одной из границ круга»? Это условие можно сформулировать, если б при движении шара и точки у меня изменялись их координаты, но у меня положение шара и точки изменяется не с помощью изменения координат их центров, а с помощью изменения свойств left и top. Пока не могу придумать как это сделать. Буду очень благодарна за вашу помощь.
     
  2. SERGMov

    SERGMov Гость

    Если есть left и top - можно легко перейти к координатам центра путем добавления величины радиуса.
     
  3. Vlanib

    Vlanib Гость

    А большой шар у тебя в каких границах перемещается и перемещается ли вобще, или он статичен и только точка на нем движется?
     
  4. jmp

    jmp Гость

    Центр окружности
    Код (Text):
    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
     
  5. Sortudo

    Sortudo Гость

    Vlanib
    шар перемещается в пределах поля excel, плюс при нажатии на кнопки вверх, вниз, вправо, влево - он меняет направление движения соответственно.


    То есть получается, точка будет находится на границе большого круга тогда, когда расстояние между центрами точки и круга будет равно радиусу большого круга. Тогда остается вычислить расстояние между центрами окружностей, для этого нужно знать координаты центров. Но у меня координаты вообще не используются, а используются лишь left и top, но как было сказано
    прибавив радиус я получу координаты центра и тогда по формуле вычислю расстояние...и все! Я правильно понимаю?
     
  6. jmp

    jmp Гость

    Формула:
    (x-xm)^2 + (y-ym)^2 = R^2

    xm и ym - начало коордниат
     
  7. Vlanib

    Vlanib Гость

    Если еще актуально, вот накатал примерный черновой проектик. Комменты лень было писать. Думаю сам разберешься. Управление чисто стрелками. Вобщем будут вопросы - пиши! ;)
     

    Вложения:

    • Ball.rar
      Размер файла:
      18,1 КБ
      Просмотров:
      14
  8. Sortudo

    Sortudo Гость

    Vlanib, большое спасибо. Посмотрела файл, сделала кое-какие исправления, теперь вроде все работает :)
     
Загрузка...

Поделиться этой страницей