Страница: 1 |
Подскажите (если конечно можно) как повернуть картинку в PictureBox или Image на сколько-то там градусов !!!
Посмотри на этом сайте в разделе ActiveX контролы. Как раз есть OCX а эту тему. на форму кидаешь кнопку и 2 пикчербокса: 1называешь picOne 2-ой - picTwo Этот код кидаешь в события нажатия кнопки, надеюсь сам разберешся: Const PI = 3.14159265358979 Dim intX As Integer Страница: 1 |
Вопрос: Поворот картинки
Добавлено: 27.01.04 20:55
Автор вопроса:
Kodo | ICQ: 293048085
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа: KAM
ICQ: 190197618
Вопросов: 25
Ответов: 97
Профиль | | #1
Добавлено: 27.01.04 20:59
Номер ответа: 2
Автор ответа: NovichoK
Вопросов: 72
Ответов: 147
Профиль | | #2
Добавлено: 27.01.04 21:14
Const ANGLE = 45
'константы конечно перед событием объявляешь
Dim intY As Integer
Dim intX1 As Integer
Dim intY1 As Integer
Dim dblX2 As Double
Dim dblY2 As Double
Dim dblX3 As Double
Dim dblY3 As Double
Dim dblThetaDeg As Double
Dim 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