Народ, помогите сделать анимацию!!!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
fort
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 66
Зарегистрирован: 10.05.2005 (Вт) 0:56
Откуда: Владивосток

Народ, помогите сделать анимацию!!!

Сообщение fort » 10.05.2005 (Вт) 1:07

фишка такая:
есть круглая форма. нужно сделать так, что бы по периметру крутился какой нибудь рисунок (например круг).с
помогите кто могет...

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 10.05.2005 (Вт) 10:10

что крутится то должно - шейп,пикчербокс,или надо круг рисовать на форме

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27

Сообщение Kirill1983 » 11.05.2005 (Ср) 14:21

Можешь ClipСontrol использовать и сам нарисовать,что и как у тя крутицца будет... :)

fort
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 66
Зарегистрирован: 10.05.2005 (Вт) 0:56
Откуда: Владивосток

Сообщение fort » 14.05.2005 (Сб) 8:14

Bonesnapper скажем так: должен крутиться Image с 3D шариком.

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 14.05.2005 (Сб) 13:44

Так, что ли?
Код: Выделить всё
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Dim StopFlag As Boolean

Private Sub Form_Load()
Dim t As Long, rx As Integer, ry As Integer
StopFlag=False
rx=(Me.ScaleWidth-Image1.ScaleWidth)\2
ry=(Me.ScaleHeight-Image1.ScaleHeight)\2
Do
   t=timeGetTime
   Image1.Left = rx+rx*Cos(t)
   Image1.Top = ry+ry*Sin(t)
   DoEvents
Loop Until StopFlag
End Sub

Private Sub Form_Click()
StopFlag=True
End Sub
Листинги не горят!

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 14.05.2005 (Сб) 14:10

Faust
Так то так только я думаю лучше таймером
и
Image1.Width
и
me.show

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 14.05.2005 (Сб) 15:05

Таймер глюкавый просто, я его по привычке не использую. А по поводу Image1.ScaleWidth и Image1.ScaleHeight я действительно погорячился...
Листинги не горят!

fort
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 66
Зарегистрирован: 10.05.2005 (Вт) 0:56
Откуда: Владивосток

Сообщение fort » 16.05.2005 (Пн) 8:27

Faust все конечно класно, все работает, спасибо большее,только есть один маленький нюанс - форма то овальная
Код: Выделить всё
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "USER32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Sub Form_Load()
  Show
  SetWindowRgn hWnd, CreateEllipticRgn(3, 3, 300, 300), False  ' True
End Sub

тогда возникает другой вопрос:
как сделать так, что бы какой-либо элемент крутился по окружности с центром в заданной точке?
хороший юзер - мертвый юзер!!!

hludens
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 16.05.2005 (Пн) 0:36
Откуда: BRYANSK

Сообщение hludens » 16.05.2005 (Пн) 9:33

X=x0+r*sin(a)
Y=Y0+r*sin(a)

где
x0 Y0 - центр окружности
R радиус.
а -Угол поворота (меняем в цикле)
x y -координаты объекта

Это же простейшая задачка по математике...

Если форма овальная то вместо R использоваьт R1 и R2 соответственно ширину и высоту формы.

fort
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 66
Зарегистрирован: 10.05.2005 (Вт) 0:56
Откуда: Владивосток

Сообщение fort » 16.05.2005 (Пн) 11:25

:oops: туплю. бывает иногда...
спасибо...
хороший юзер - мертвый юзер!!!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 170

    TopList