Страница: 1 |
Страница: 1 |
Вопрос: Помогите, пожалуйста! Очень нужно!
Добавлено: 02.07.04 20:59
Автор вопроса:
AgentFire | ICQ: 192496851
У меня имеется изображение(в заднем буффере или просто на PictureBox'е). Подскажите, каким алгоритмом можно повернуть изображение на n-ное кол-во градусов.
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
sne
![]()
![]()
![]()
![]()
![]()
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 02.07.04 22:36
Пример ушел на noviksplavnik@mail.ru
Номер ответа: 2
Автор ответа:
Barsik
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #2
Добавлено: 02.07.04 22:48
на форму кидаешь кнопку и 2 пикчербокса: 1называешь picOne 2-ой - picTwo
Этот код кидаешь в события нажатия кнопки, надеюсь сам разберешся:
Const PI = 3.14159265358979
Const ANGLE = 45
'константы конечно перед событием объявляешь
Dim intX As Integer
 
im intY As Integer
 
im intX1 As Integer
 
im intY1 As Integer
 
im dblX2 As Double
 
im dblY2 As Double
 
im dblX3 As Double
 
im dblY3 As Double
 
im dblThetaDeg As Double
 
im dblThetaRad As Double
'Initialize rotation angle
dblThetaDeg = ANGLE
'Compute angle in radians
dblThetaRad = dblThetaDeg * PI / 180
'Set scale modes to pixels
picOne.ScaleMode = vbPixels
picTwo.ScaleMode = vbPixels
For intX = 0 To picTwo.ScaleWidth
intX1 = intX - picTwo.ScaleWidth \ 2
For intY = 0 To picTwo.ScaleHeight
intY1 = intY - picTwo.ScaleHeight \ 2
'Rotate picture by dblThetaRad
dblX2 = intX1 * Cos(-dblThetaRad) + _
intY1 * Sin(-dblThetaRad)
dblY2 = intY1 * Cos(-dblThetaRad) - _
intX1 * Sin(-dblThetaRad)
'Translate to center of picture box
dblX3 = dblX2 + picOne.ScaleWidth \ 2
dblY3 = dblY2 + picOne.ScaleHeight \ 2
'If data point is in picOne, set its color in picTwo
If dblX3 > 0 And dblX3 < picOne.ScaleWidth - 1 _
And dblY3 > 0 And dblY3 < picOne.ScaleHeight - 1 Then
picTwo.PSet (intX, intY), picOne.Point(dblX3, dblY3)
End If
Next intY
Next intX
Номер ответа: 3
Автор ответа:
AgentFire
![]()
![]()
![]()
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #3
Добавлено: 03.07.04 19:28
Огромное СПАСИБО :~)!!!!Один бы я не справился.
Номер ответа: 4
Автор ответа:
Barsik
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #4
Добавлено: 03.07.04 21:27
Всегда рад помочь!!!