Newsgroup: it.comp.lang.visual-basic
Titolo: capovolgere orizzontalmente un'immagine

Vorrei poter capovolgere orizzontalmente un'immagine a seconda di un evento
if ... chi mi sa aiutare?
grazie a tutti
Mia

 ha scritto nel messaggio
news:eHwi7.61030$TS4.3...@news2.tin.it...


 if ... chi mi sa aiutare?
prova con il metodo PaintPicture
oggetto.PaintPicture Pic, x,y,width, height,
originex,originey,originewidth,origineheight
dove oggetto puo essere Printer o Form o un controllo  Picture , origine
costituisce l'area di ritaglio dell'immagine di origine, puoi giocare con
Width e Height (valori positivi e negativi) per ruotare l'immagine di 90,
180, 270 gradi
prova per esempio
Form1.PaintPicture Picture1.Picture, 1000, 1000, Picture1.Width,
Picture1.Height, 0, 0, Picture1.Width, Picture1.Height
Form1.PaintPicture Picture1.Picture, 1000, 1000, -Picture1.Width,
Picture1.Height, 0, 0, Picture1.Width, Picture1.Height
Form1.PaintPicture Picture1.Picture, 1000, 1000,
Picture1.Width, -Picture1.Height, 0, 0, Picture1.Width, Picture1.Height
Form1.PaintPicture Picture1.Picture, 1000,
1000, -Picture1.Width, -Picture1.Height, 0, 0, Picture1.Width,
Picture1.Height
Ciao stefano

 ha scritto nel messaggio
news:9mg0a6$rah$1...@lacerta.tiscalinet.it...
Scusa ma con l'esempio di prima capovolgi solo in maniera speculare ma, se
era quella la domanda, non ruotata di 90°
Ciao stefano
metti in un form due picture (origine e destinazione) un commandbutton e un
textbox per mettere l'angolo di rotazione
= 1 ruota di 180
=  2 ruota di 270°
= 0,5 non ruota
= 0,666 ruota di 90°
inserisci questa routine
Private Sub bmp_rotate(pic1 As Control, pic2 As Control, ByVal theta!)
  Const Pi = 3.
14159265359
  Dim c1x As Integer  ' Center of pic1.
  Dim c1y As Integer  '   "
  Dim c2x As Integer  ' Center of pic2.
  Dim c2y As Integer  '   "
  Dim a As Single     ' Angle of c2 to p2.
  Dim r As Integer    ' Radius from c2 to p2.
  Dim p1x As Integer  ' Position on pic1.
  Dim p1y As Integer  '   "
  Dim p2x As Integer  ' Position on pic2.
  Dim p2y As Integer  '   "
  Dim n As Integer    ' Max width or height of pic2.
  ' Compute the centers.
  c1x = pic1.ScaleWidth / 2
  c1y = pic1.ScaleHeight / 2
  c2x = pic2.ScaleWidth / 2
  c2y = pic2.ScaleHeight / 2
  ' Compute the image size.
  n = pic2.ScaleWidth
  If n < pic2.ScaleHeight Then n = pic2.ScaleHeight
  n = n / 2 - 1
  ' For each pixel position on pic2.
  For p2x = 0 To n
     For p2y = 0 To n
        ' Compute polar coordinate of p2.
        If p2x = 0 Then
          a = Pi / 2
        Else
          a = Atn(p2y / p2x)
        End If
        r = Sqr(1& * p2x * p2x + 1& * p2y * p2y)
        ' Compute rotated position of p1.
        p1x = r * Cos(a + theta)
        p1y = r * Sin(a + theta)
        ' Copy pixels, 4 quadrants at once.
        c0& = pic1.Point(c1x + p1x, c1y + p1y)
        c1& = pic1.Point(c1x - p1x, c1y - p1y)
        c2& = pic1.Point(c1x + p1y, c1y - p1x)
        c3& = pic1.Point(c1x - p1y, c1y + p1x)
        If c0& <> -1 Then pic2.PSet (c2x + p2x, c2y + p2y), c0&
        If c1& <> -1 Then pic2.PSet (c2x - p2x, c2y - p2y), c1&
        If c2& <> -1 Then pic2.PSet (c2x + p2y, c2y - p2x), c2&
        If c3& <> -1 Then pic2.PSet (c2x - p2y, c2y + p2x), c3&
     Next
     ' Allow pending Windows messages to be processed.
     t% = DoEvents()
  Next
End Sub
' codice per
Private Sub Command1_Click()
    Const Pi = 3.
14159265359
    ANGLE = Pi / CDbl(Text1.Text)
    Picture2.Cls
    ' angle e' una frazione di pi*2 6.283...
    Call bmp_rotate(Picture1, Picture2, ANGLE)
End Sub

 ha scritto nel messaggio
news:eHwi7.61030$TS4.3...@news2.tin.it...


scusate ma mi si sono cancellati i messaggi e non riesco a scaricare niente
dal 17 al 28 ago! devo rifare la domanda:


 ha scritto nel messaggio
news:OiQi7.26052$%a4.10...@news.infostrada.it...

Finalmente riesco a rivedere il NG!!! non so cosa mi succeda, a volte mi si
cancellano tutti e non riesco a recuperare che quelli deiell'ultimo giorno!
Sto partendo per il mare (alle 11 il treno per Lecce!) Intanto grazie ma...
a presto ... e mi sa che richiederņ il vostro aiuto!!
GRAAAZIEEEE
SMAK
Mia

 ha scritto nel messaggio
news:9moq3c$qok$1...@nreada.inwind.it...
