Hola de nuevo, gracias por responder
creo que me enrolle demasiado la ultima vez, os pego el codigo de lo que estoy usando y al final os digo realmente lo que quiero.
Lo de rotar la linea con Sin y Cos, y otros ejemplos, todo eso ya lo habia hecho en el Vumeter Antiguo
Aqui va el codigo
////////////////////////////////////////////////////////////
Private Sub Form_Load()
"linea.gif" es la linea de la que os hablaba, que es un dibujo creado con paintshop o cualquier otro programa
Form1.Cls
InitGDIPlus
GdipCreateFromHDC Picture1.hDC, graphics
GdipSetSmoothingMode graphics, SmoothingModeAntiAlias
GdipLoadImageFromFile StrPtr("Linea.gif"), img
'----- aqui cargo linea.gif en img
GdipGetImageWidth img, w
GdipGetImageHeight img, h
Rotate HScroll1.Value, graphics, 142, 143
End Sub
------------------------------------------------------------
Private Sub HScroll1_Scroll()
Picture1.Cls
InitGDIPlus
GdipCreateFromHDC Picture1.hDC, graphics
GdipSetSmoothingMode graphics, SmoothingModeAntiAlias
GdipLoadImageFromFile StrPtr("Linea.gif"), img
'----- aqui cargo linea.gif en img
GdipGetImageWidth img, w
GdipGetImageHeight img, h
Rotate HScroll1.Value, graphics, 142, 142
End Sub
------------------------------------------------------------
Sub Rotate(Angle As Single, g As Long, x As Single, y As Integer)
GdipRotateWorldTransform g, Angle, MatrixOrderAppend
GdipTranslateWorldTransform g, x, y, MatrixOrderAppend
GdipDrawImageRect g, img, -w + HScroll2.Value, -h \ 2, w, h
End Sub
------------------------------------------------------------
Private Sub Form_Unload(Cancel As Integer)
TerminateGDIPlus
End Sub
------------------------------------------------------------
Private Sub InitGDIPlus()
Dim uInput As GdiplusStartupInput
uInput.GdiplusVersion = 1
If GdiplusStartup(token, uInput) <> Ok Then
MsgBox "GDI+




?", vbCritical, "InitError"
End
End If
End Sub
------------------------------------------------------------
Private Sub TerminateGDIPlus()
GdipDisposeImage img
GdipDeleteGraphics graphics
GdiplusShutdown token
End Sub
////////////////////////////////////////////////////////////
si probais este codigo y os da algun error no os preocupeis porque estoy en pruebas y le he hecho modificaciones
aqui viene la cuestion
si os fijais en la linea siguiente:
GdipLoadImageFromFile StrPtr("Linea.gif"), img
'----- aqui cargo linea.gif en img
Esta me carga la imagen desde un fichero.
y lo que yo quiero es que la imagen la coja desde otro picturebox que tengo puesto (por ejemplo "PictureBox2" donde yo le dibujo lo que quiero, lineas, circulos o flechas con metodos como picture2.pset(0,0)-(24,65),vbred o picture2.circle(.....)
o sea que quedaria algo asi, pero no se que llamada a gdiplus necesito
por ej
GdipLoadImageFromHdc StrPtr(PictureBox2.hdc), img
la llamada "GdipLoadImageFromHdc" me la he inventado, es para que veais mas o menos lo que quiero
como hacer un BitBlt desde picture2.hdc a picture1.hdc
entonces con esto rotaria lo que tengo dibujado en el PictureBox2 y no la linea.gif
imaginaros que tengo en un picturebox el chasis de un auto visto de lado, y en otro picturebox las ruedas, entonces copio las ruedas al picturebox del auto, y las ruedas las giro con rotate
Otra vez ya me enrolle sin querer jejejejejeje
espero haberme explicado bien
Si puedo os paso un link de un ejemplo parecido pero en GDI normal, no en GDI+
Gracias de antemano
Saludos a todos los del Foro