powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не могу сообразить
4 сообщений из 4, страница 1 из 1
Не могу сообразить
    #33603664
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго Вам времени суток
Уважаемые господа

при наличии времени прошу Вас помочь

указанный код позволяет мне передвигать объект
по тем координатам которые считываются из файл

Dim start As Integer
Dim koordinates As String
Dim korx As String
Dim kory As String
Dim myCol As New Collection
Dim Buf As String
Dim korxy As Integer

Private Sub Command2_Click()
On Error GoTo Error13:

Open "c:\blockkoordinat.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, Buf
myCol.Add Buf
Loop
Close #1

For i = 1 To myCol.Count
korxy = myCol(i)
block.Left = korxy
korxy = 0
i = i + 1
korxy = myCol(i)
block.Top = korxy
korxy = 0
Next i


Error13:
If Err.Number = 13 Then
For i = 1 To myCol.Count
myCol.Remove (myCol.Count)
Next i
End If
End Sub

координаты в файл поподают при помощи следующего кода

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
koordinates = ""
start = 1
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
start = 0
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

If start = 1 Then
korx = X
kory = Y
koordinates = koordinates + korx + vbCrLf + kory + vbCrLf
Else
korx = ""
kory = ""
End If

End Sub

Private Sub Command1_Click()
Open "c:\blockkoordinat.txt" For Output As #1
Print #1, koordinates
Close #1
End Sub

все работает как надо

дело лишь втом что
если я быстро прведу мышкой
то и объект к указанной точке пойдет быстро
если медленно то медленно

как можно урегулировать этот процесс

т.е. независимо от движения мышки
я сам мог контролировать скорость передвижения

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
Не могу сообразить
    #33603689
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задай угол-направление (atan(y/x)), а модуль (скорость движения) определяй по-другому.

и новое передвижение
NX=MODUL* cos(a)
NY=MODUL*sin(a)
...
Рейтинг: 0 / 0
Не могу сообразить
    #33603694
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ

но если можно,
если будет время

поясните понятным примером
на основании моего примера

но суть должна остаться
т .е. движение обекта должно в точности повторять
движение мыши
которое было зафиксировано в файл

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
Не могу сообразить
    #33606333
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. двигаем мышью и записываем траекторию в файл, а затем загружаем траекторию из файла и двигаем по ней объект? при том равномерно?

Какова плавность хода?

П.С. Достаточно
korx=x
kory=y
заменить на цикл, в котором за один такт прибавляется только тот путь, который надо пройти (например L=100 клеток) и
korx=korx+L*cos(fi)
kory=kory+L*sin(fi)

где fi=atan((y-kory)/(x-korx)); если же x-korx=0 то fi=pi/2*sgn(y-kory) (или вверх или вниз)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не могу сообразить
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]