Страница: 1 | 2 |
Вопрос: Уважаемые знатоки!
Добавлено: 22.01.08 15:51
Автор вопроса: Папоторник
Уважаемые знатоки, внимание вопрос:
есть код:
Dim a, b, c, d As Single
Dim Hyp As Single
Dim cHyp As Single
Private Sub Command1_Click()
Randomize
a = 200
b = 200
c = Rnd * 20 - 10
d = Rnd * 20 - 10
Form1.Circle (a + c, b + d), 2
Timer1.Enabled = True
End Sub
Private Sub Form_Activate()
Form1.scalemode=3
Form1.autoredraw = true
Circle (200, 200), 100
End Sub
Private Sub Timer1_Timer()
Form1.Circle (a, b), 2, Form1.BackColor
a = a + c
b = b + d
Hyp = Sqr((a - 200) ^ 2 + (b - 200) ^ 2)
If Hyp > (100 - 2) Then
cHyp = Hyp / (100 - 2)
Else
cHyp = 1
End If
a = (a - 200) / cHyp + 200
b = (b - 200) / cHyp + 200
Form1.Circle (a, b), 2
End Sub
Как сделать, чтобы маленькая окружность при соприкосновении с большой окружностью, начинала двигаться по периметру большой окружности с постонной скоростью.
Ответы
Всего ответов: 24
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 23.01.08 02:30
Периметр окружности? Кто-то из нас явно прогуливал математику в школе
Номер ответа: 2
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #2
Добавлено: 23.01.08 20:28
Приколите! Из википедии:
-> Периметр многоугольника равен сумме длин всех его сторон.
-> Периметр круга (длина окружности): P = 2πr = πd
Номер ответа: 3
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #3
Добавлено: 23.01.08 20:30
тфу блин опять я туплю! Всё правильно.. периметр круга, а не окружности. сори
Номер ответа: 4
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #4
Добавлено: 23.01.08 20:44
Кароче, я показывал как запретить запретить выход за пределы. Пускай у тебя x,y увеличиваются, а круг тупо не выходит за пределы заданного радиуса
Номер ответа: 5
Автор ответа:
Папоторник
Вопросов: 6
Ответов: 22
Профиль | | #5
Добавлено: 25.01.08 00:47
А если сделать еще один массив с логическими значенями и присваивать 1,если дошел дл круга и 0, если нет, а потом добавлять значения вращения к тем которые со значением 1. Можно так?
Номер ответа: 6
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #6
Добавлено: 25.01.08 04:52
Да блин, после столкновения находи координаты каждой точки большой окружности и пихай туда кружочек Или в школе не учили тригонометрические функции и параметрическое представление координат окружности?
Dim fi As Single
Dim x0 As Single, x As Single
Dim y0 As Single, y As Single
Const pi = 3.141592
Me.ScaleMode = 3
Me.AutoRedraw = True
r = 100
x0 = 200
y0 = 200
For fi = 0 To 2 * 3.14 Step 0.001
x = x0 + r * Sin(fi)
y = y0 + r * Cos(fi)
Me.PSet (x, y)
Next
код рисует окружность с центром в точке (x0;y0) радиусом r. Отсюда и пляши, все это дело можно организовать в том таймере, который у тебя уже есть. Находишь новые координаты, закрашиаешь старое, рисуешь новое.
Номер ответа: 7
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #7
Добавлено: 25.01.08 10:36
Через интегралы надо
Номер ответа: 8
Автор ответа:
Папоторник
Вопросов: 6
Ответов: 22
Профиль | | #8
Добавлено: 25.01.08 19:08
Нужно сделать как Steel Brand говорит (мне кажется)...
Номер ответа: 9
Автор ответа:
BUMM ®
Вопросов: 8
Ответов: 482
Профиль | | #9
Добавлено: 25.01.08 22:45
Номер ответа: 10
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #10
Добавлено: 26.01.08 01:33
Я РОЗРЕШАЮ!
Номер ответа: 11
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #11
Добавлено: 26.01.08 02:23
Если движемся по окружности, при этом |v|=const, значит
тангенциаонльное ускорение равно нулю. Ускорение направлено по
нормали, формула величины ускорения кажется a=v/(R^2), хотя могу
ошибаться.
Ну а дальше дело техники. Скорость - интеграл ускорения, координата -
интеграл скорости.
Простейшая система дифуров, где начальные условия для задачи Коши
подставляются из значений параметров в момент столкновения (координаты
точки столкновения, скорость и ускорение в этот момент).
Вот.
Если в чем не прав - поправьте, ибо математику уже забыл напрочь,
квадратные уравнения как правило считаю в матлабе.
Номер ответа: 12
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #12
Добавлено: 26.01.08 02:24
Папоторник, а сколько заказчик платит за эту систему физического
моделирования, если не секрет?
Номер ответа: 13
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #13
Добавлено: 26.01.08 11:09
Павел, спасибо, ты своими словами выразил именно ту мысль которую я хотел донести до автора вопроса!
Номер ответа: 14
Автор ответа:
Папоторник
Вопросов: 6
Ответов: 22
Профиль | | #14
Добавлено: 26.01.08 12:53
Заказчик - кафедра информатики, оплата - право на дальнейшее обучение.. Это прога должна быть моей т.н. "выпускной работой", которую мне нужно сдать в этот вторник.. Вижу работки у меня еще много..(
P.S.: Steel Brand, сорри, посчитал это сарказмом..
Номер ответа: 15
Автор ответа:
Папоторник
Вопросов: 6
Ответов: 22
Профиль | | #15
Добавлено: 26.01.08 12:55
Если бы это был реальный заказ, какую бы цену вы назвали, Павел?