Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2011, 11:41   #1
Азамат Казанчев
Форумчанин
 
Регистрация: 25.04.2011
Сообщений: 110
Стрелка поворот на угол в VB6

пролема такая: написал программу поварачивающую две линии на угол в цикле, цикл повторяется по таймеру, но с каждум поторением начальная и конечные позиции линий смещаются на небольшой угол. почему? Вот код
Код:
Private Sub Timer2_Timer()
dLine(1).x = 0: dLine(1).y = 0
dLine(2).x = 0: dLine(2).y = -1.5
dLine(3).x = 0: dLine(3).y = -1.5
'====Перевод координат (из дек. в полярные)

pLine(2).Theta = GetAngle(0, 0, dLine(2).x, dLine(2).y)
pLine(2).R = GetDistance(0, 0, dLine(2).x, dLine(2).y)
pLine(3).Theta = GetAngle(0, 0, dLine(3).x, dLine(3).y)
pLine(3).R = GetDistance(0, 0, dLine(3).x, dLine(3).y)
'====== ПРОЦЕСС ПОВОРОТА ============
' Только нужно не забыть перевести градусы в радианы.


If Text2.Text < 35 Then
Text1.Text = Text1.Text + 1
Text2.Text = Text2.Text + 1
pLine(3).Theta = pLine(3).Theta - Text1.Text * PI / 180
pLine(2).Theta = pLine(2).Theta + Text1.Text * PI / 180
ElseIf (Text2.Text > 34) And (Text2.Text < 95) Then
Text2.Text = Text2.Text + 1
Text1.Text = Text1.Text - 1
pLine(3).Theta = pLine(3).Theta - Text1.Text * PI / 180
pLine(2).Theta = pLine(2).Theta + Text1.Text * PI / 180
Else
Text2.Text = -35

End I

dLine(2).x = Cos(pLine(2).Theta) * pLine(2).R
dLine(2).y = Sin(pLine(2).Theta) * pLine(2).R
dLine(3).x = Cos(pLine(3).Theta) * pLine(3).R
dLine(3).y = Sin(pLine(3).Theta) * pLine(3).R


End Sub
прошу помочь кто может
Азамат Казанчев вне форума Ответить с цитированием
Старый 27.04.2011, 11:58   #2
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Здравствуйте
1. Каждая переменная имеет свою точность, константа PI тоже. Но не это, по видимому, главное.
2. Экранные координаты заведомо дискретные. Не знаю что такое pLine, но в следующем коде
Код:
...
pLine(2).Theta = GetAngle(0, 0, dLine(2).x, dLine(2).y)
...
Вы используете в вычислениях похоже именно такие. Или Вам надо использовать массив или найти способ корректировки подгоняя под экран.
До свидания
OlegVE вне форума Ответить с цитированием
Старый 27.04.2011, 13:04   #3
Азамат Казанчев
Форумчанин
 
Регистрация: 25.04.2011
Сообщений: 110
По умолчанию

здраствуй.
и первое и второе замечания правильны, я о них знаю, поэтому у меня проблемы не с ними. вот что у меня по второму твоему замечанию
Код:
Private Sub Form_Load()
Picture1.ScaleMode = vbCentimeters
  Picture1.FillColor = vbRed
    Picture1.FillStyle = 0
dLine(1).x = 0: dLine(1).y = o
dLine(2).x = 0: dLine(2).y = -1.5
dLine(3).x = 0: dLine(3).y = -1.5
End Sub
может еще что подскажешь?
Азамат Казанчев вне форума Ответить с цитированием
Старый 27.04.2011, 13:12   #4
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

VB6 - не мой язык. Больше ничего не могу добавить. Что я заметил, так это
Код:
...
dLine(1).x = 0: dLine(1).y = o
...
буква о, а не ноль.
Втрое. Строки в VB6 разделяются двоеточием?
До свидания
OlegVE вне форума Ответить с цитированием
Старый 27.04.2011, 13:31   #5
Азамат Казанчев
Форумчанин
 
Регистрация: 25.04.2011
Сообщений: 110
По умолчанию

за букву спс, но ничего не изменилось, а на счет : -это не строки а массивы, и программа не хочет их менять.
Может я не так написал? у меня есть цикл поворачивающий линию на угол. цикл повторяется по таймеру как только заканчивается, но с каждым повторение линии (их начальные и конечные координаты) смещаются на небольшой угол. как с этим бороться
Азамат Казанчев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поворот PNG на любой угол! DiME Мультимедиа в Delphi 1 03.09.2010 10:54
Поворот tPNGImage на нужный угол Altera Общие вопросы Delphi 3 08.09.2009 14:25
Поворот обьекта на угол Lemo Помощь студентам 4 06.04.2009 19:46
Поворот изображения на заданный угол. taller07 Мультимедиа в Delphi 4 28.11.2008 14:01
Поворот буквы на указанный угол delphin100 Общие вопросы Delphi 1 02.06.2008 16:28