Страница: 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
Всегда рад помочь!!!