С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для StileSex
0 / 0 / 0
Регистрация: 12.06.2013
Сообщений: 18

мяч в vba

13.06.2013, 02:48. Показов 2509. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Изобразить движение футбольного мяча после удара (задается начальное положение мяча и вектор скорости). В процессе полёта мяч ударяется о пол, потолок и стены,стены поле есть,но не пойму как сделать(
Вложения
Тип файла: rar мяч.rar (29.0 Кб, 33 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.06.2013, 02:48
Ответы с готовыми решениями:

Программа "Футбольный мяч" (VB6)
Всем доброго времени суток! Я хотел бы попросить у вас помощи дабы разобраться с заданием. Задание таково: Изобразить движение...

Игра в мяч.
Задача 1. Игра в мяч Дети встали в круг и бросают друг другу мяч. Известно, что каждый ребёнок бросает мяч всегда одному и тому же...

Нарисовать мяч
Как с помощью C++ Builder нарисовать мяч? Рисую эллипс, но как его разрисовать в черно-белый цвет?

8
321 / 289 / 104
Регистрация: 12.04.2011
Сообщений: 925
13.06.2013, 09:16
Лучший ответ Сообщение было отмечено как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Dim Up As Boolean, toLeft As Boolean
Dim a_x, a_y
 
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
            ' vbKeyLeft --- 37
            ' vbKeyUp ----- 38
            ' vbKeyRight -- 39
            ' vbKeyDown --- 40
   With Bita1
      If KeyCode = 37 And .Left > 0 Then .Left = .Left - 240
      If KeyCode = 39 And .Left < 5400 Then .Left = .Left + 240
         
      If KeyCode = 38 And .Top > 0 Then .Top = .Top - 120
      If KeyCode = 40 And .Top < 6600 Then .Top = .Top + 120
   End With
   
   If KeyCode = vbKeyEscape Then End
End Sub
 
Private Sub Form_Load()
   Randomize
   a_x = 60: a_y = 30
End Sub
 
Private Sub Timer1_Timer()
   Dim d_x As Integer, d_y As Integer
   
   With Ball
      d_x = Bita1.Left - .Left
      d_y = Bita1.Top - .Top
      
      .Top = .Top + a_y
      .Left = .Left + a_x
      
      If .Left <= 0 Then a_x = Abs(a_x) 'ëåâàÿ ñòåíà
      If .Left >= 6720 Then a_x = -Abs(a_x) 'ïðàâàÿ ñòåíà
      
      If .Top <= 0 Then a_y = Abs(a_y) 'ïîòîëîê
      If .Top >= 6480 Then a_y = -Abs(a_y) 'ïîë
      
      If d_x >= -1440 And d_x <= 120 And d_y = 360 Then a_y = -Abs(a_y) 'âåðõíÿÿ
      If d_x >= -1440 And d_x <= 120 And d_y = -240 Then a_y = Abs(a_y) 'íèæíÿÿ
      
      If d_y >= -120 And d_y <= 240 And d_x = 360 Then a_x = -Abs(a_x) 'ëåâàÿ
      If d_y >= -120 And d_y <= 240 And d_x = -1680 Then a_x = Abs(a_x) 'ïðàâàÿ
   End With
End Sub
 
'   Dim a()
'   a = Array(10, 15, 30, 45, 60)
'   k = Int(Rnd * 5)
'   a_x = a(k)    Debug.Print .Left, .Top, k, a(k)
3
13.06.2013, 09:51

Не по теме:

Ну если в невесомости, вакууме и при абсолютной упругости, то наверно так:)!

1
 Аватар для StileSex
0 / 0 / 0
Регистрация: 12.06.2013
Сообщений: 18
13.06.2013, 10:41  [ТС]
Извините не до писал что В процессе полёта мяч ударяется о пол, потолок и стены, "теряя при каждом ударе часть энергии"вот,на сколько понимаю полную его остановку.
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
13.06.2013, 10:44
Лучший ответ Сообщение было отмечено как решение

Решение

Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Option Explicit
 
Private Type Vector
    Dx As Single
    Dy As Single
End Type
 
Dim Vec As Vector, Pos As Vector
Dim Fri As Single, Loss As Single, Rad As Single
Dim Bf As Boolean
 
Private Sub Form_Load()
    Rad = 20: Loss = 1.2: Fri = 1.01
    Pos.Dx = Me.ScaleWidth / 2
    Pos.Dy = Me.ScaleHeight / 2
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim Dx As Single, Dy As Single, R As Single
    Dx = X - Pos.Dx: Dy = Y - Pos.Dy
    R = Sqr(Dx * Dx + Dy * Dy)
    If R < Rad Then Bf = True
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim Dx As Single, Dy As Single
    If Not Bf Then Exit Sub
    Dx = X - Pos.Dx: Dy = Y - Pos.Dy
    Vec.Dx = -Dx: Vec.Dy = -Dy
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Bf = False
End Sub
Private Sub LossVec()
    If Vec.Dx Then Vec.Dx = Vec.Dx / Loss
    If Vec.Dy Then Vec.Dy = Vec.Dy / Loss
End Sub
Private Sub tmrTimer_Timer()
    Me.Cls
    If Bf Then
        Me.Circle (Pos.Dx, Pos.Dy), Rad, vbRed
        Me.Line (Pos.Dx, Pos.Dy)-Step(-Vec.Dx, -Vec.Dy), vbGreen
    Else
        Vec.Dx = Vec.Dx / Fri: Vec.Dy = Vec.Dy / Fri
        Pos.Dx = Pos.Dx + Vec.Dx
        Pos.Dy = Pos.Dy + Vec.Dy
        If Pos.Dx > Me.ScaleWidth - Rad Then Pos.Dx = Me.ScaleWidth - Rad: Vec.Dx = -Vec.Dx: LossVec
        If Pos.Dx < Rad Then Pos.Dx = Rad: Vec.Dx = -Vec.Dx: LossVec
        If Pos.Dy > Me.ScaleHeight - Rad Then Pos.Dy = Me.ScaleHeight - Rad: Vec.Dy = -Vec.Dy:  LossVec
        If Pos.Dy < Rad Then Pos.Dy = Rad: Vec.Dy = -Vec.Dy:  LossVec
        Me.Circle (Pos.Dx, Pos.Dy), Rad
    End If
    Me.Refresh
End Sub
Вложения
Тип файла: rar Ball.rar (1.5 Кб, 82 просмотров)
3
 Аватар для StileSex
0 / 0 / 0
Регистрация: 12.06.2013
Сообщений: 18
13.06.2013, 10:51  [ТС]
The trick Огромное спасибо,то что нужно
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
13.06.2013, 12:45
Можно сделать поправочку на земное притяжение. Реальней будет смотреться
Visual Basic
1
2
        Pos.Dx = Pos.Dx + Vec.Dx
        Pos.Dy = Pos.Dy + Vec.Dy + 2
1
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
13.06.2013, 13:07
Alex77755, Ну это вид сверху как бы был, мяч не летал а по земле катался)
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
13.06.2013, 16:07
Ясно

Добавлено через 5 минут
А задача-то не так проста как кажется на первый взгляд.
И решена-то только на треть! Последнюю треть.
В процессе полёта мяч ударяется о пол, потолок и стены
вопрос как решить полностью!? В аксАно-метрии?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.06.2013, 16:07
Помогаю со студенческими работами здесь

падающий мяч
допустим бросили мячь с высоты 100пикселей написать задачу используя формулы S=v*t, H =100-9.81* t * t/2 после падения мячь должен...

Теннисный мяч
Изобразить теннисный мяч (белый круг), падающий вниз с высоты, задаваемой пользователем.Показать эффект отскока мяча назад на меньшую...

Трехцветный мяч
Добрый день. Нужно сделать такую задачку, никаких мыслей по реализации нет. Помогите пожалуйста... Трехцветный мяч начальным диаметром...

Скачущий мяч
Нужна анимация прыгающего на плоскости мяча:)

Прыгающий мяч
Как изобразить прыгающий мяч. Мяч падает вниз с высоты. Показать эффект отскока мячика на меньшую высоту.И так пока окончательно не...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru