¿Cómo usar vb para rotar formas?
PrivateConstSRCCOPY = & ampHCC0020
PrivateConstPi=3.14
privatdeclarefunctionsetpixellib " GDI 32 "(ByValhdcAsLong, ByValxAsLong, ByValyAsLong, ByValcrColorAsLong)AsLong
privatedeclarefunctiongetpixellib " GDI 32 "(ByValhdcAsLong, ByValxAsLong, ByValyAsLong)AsLong
privatdeclarefunctionstretchbltlib " GDI 32 "(ByValhdcAsLong, ByValxAsLong, ByValyAsLong, ByValnWidthAsLong, ByValnHeightAsLong, ByValhSrcDCAsLong, xS rcAsLong, ByValySrcAsLong, ByValnSrcWidth AsLong, ByValnSrcHeightAsLong, ByValdwRopAsLong) AsLong
PrivateSubBMP _ rotar (imagen 1 como PictureBox, PIC2AS PictureBox, ByvalTheta)' rotación de 45 grados.
dimc 1x como entero, c 1ya entero
Dimc2xAsInteger, c2yAsInteger
dimc 1x como entero, p 1ya entero
Dimp2xAsInteger, p2yAsInteger
DimnAsInteger, rAsInteger
c1x=pic1. Ancho de escala\2
c1y=pic1. EscalaAltura\2
c2x=pic2. Ancho de escala\2
c2y=pic2. ScaleHeight\2
Ifc2x $ # @ 60c2yThenn=c2yElsen=c2x
n=n-1
pic1hDC=pic1.hdc
pic2hDC=pic2.hdc
Forp2x = 0Ton
Forp2y = 0Ton
ifp2x = 0 thena = Pi/2 elsea = Atn(p2y/p2x) p>
r = Sqr(1 & amp;p2x * p2x+1 & amp;*p2y*p2y)
p 1x = r * Cos(a+θ)
p1y=r*Sin(a+theta)
c0 & amp=GetPixel(pic1hDC, c1x+p1x, c1y+p1y)
c1.
=GetPixel(pic1hDC, c1x-p1x, c1y-p1y)
c2 & amp=GetPixel(pic1hDC, c1x+p1y, c1y-p1x)
c3 & amp=GetPixel(pic1hDC , c1x-p1y, c1y+p1x)
Ifc0 & amp$#@60;$#@62;-1EntoncesSetPixelpic2hDC, c2x+p2x, c2y+p2y, c0
Ifc1. $#@60;$#@62;-1ThenSetPixelpic2hDC,c2x-p2x,c2y-p2y,c1
Ifc2 & amp$#@60;$#@62;-1 entoncesseppi pic 2 hdc,c2x +p2y,c2y-p2x,c2
Ifc3 &$#@60;$#@62;-1EntoncesSetPixelpic2hDC,c2x-p2y,c2y+p2x,c3
Entonces
p>Luego
Finalizar conector
Subcomando privado 1 _ click()'Copia normal
Imagen 2. Cls
px=Imagen1. Ancho de escala
py=alto de escala de Imagen1
StretchBltPicture2.hdc, px, 0, -px, py, Picture1.hdc, 0, 0, px, py, SRCCOPY
Conector final
Subcomando privado 2 _ click()' inversión de 180 grados
Imagen 2. Cls
px=Imagen1. Ancho de escala
py=alto de escala de Imagen1
StretchBltPicture2.hdc, 0, py, px, -py, Picture1.hdc, 0, 0, px, py, SRCCOPY
Conector final
Subcomando privado 3 _ click()' 45 rotar
Imagen 2. Cls
Callbmp_rotate(Imagen 1, Imagen 2, 3.14/4)
Conector final
PrivateSubForm_Load()
OnErrorResumeNext
Yo. Título=Aplicación. Título "Agregar título de la aplicación.
i.Left=(Screen.Width - i.Width)/2
i.top = (Screen.Height - i.Height)/ 2 pulgadas
Imagen 1. ScaleMode=3
Imagen 2.
Accesorios finales