| |
Visual-Basic EinsteigerDrehbare und transparente Grafik über zweite Grafik in PictureBox | | | Autor: Michael_HU | Datum: 27.03.13 06:56 |
| Hallo liebe Leute!
Möchte wieder mal Eure Hilfe bzw. Vorschläge haben.
Ich lege ein BMP Grafikbild in eine PictureBox1.
Diese Grafik ist boxfüllend, 8600x8600 Pixel.
Nun möchte ich eine zweite Grafik (ebenfalls BMP), die um ein drittel kleiner ist als die PictureBox1, über das erste Grafikbild zentriert und transparent legen.
Diese zweite Grafik möchte ich um die Zentrierung herum nach Winkeleingabe in einer TextBox entw. nach links (180°) bzw. nach rechts (-180°) drehen.
Wobei mein Nullpunkt ist unten
Den ersten Schritt habe ich bereits, aber wie lege ich eine zweite Grafik transparent über die erste und wie lässt sich dann die zweite drehen?
Programm in VB6.
Hier meine Anfänge, die funktioniert:
'Inhalt: PictureBox1, Slider, ChekBox, TextBox, 2 Buttons
Option Explicit
Dim OrigoX As Long
Dim OrigoY As Long
Dim KompassX As Double
Dim KompassY As Double
'Private Pi As Double
Public Orientierung As Single
Private mMeinSlider As SliderToolTip
Const Pi = 3.14159265358979 'Pi = Atn(1) * 4
Const RAD = 1.74532925199433E-02 'Pi/180
Const Leitlinie = 260
Private Sub Form_Load()
Picture1.Cls
Picture1.AutoRedraw = True
Picture1.ScaleMode = 3 'in pixel
Picture1.Width = 8600 '5055
Picture1.Height = Picture1.Width 'Quadratisches Bildfeld
Picture1.DrawWidth = 2
Picture1.ForeColor = vbBlue
Set mMeinSlider = New SliderToolTip
mMeinSlider.Init MeinSlider ‘in Eigenschaft wird aber unsichtbar gestellt
mMeinSlider.Enabled = CBool(chkMeinSlider.Value) 'Werte am Slider anzeigen oder nicht
OrigoX = Picture1.ScaleHeight / 2 + 18 'Nullpunkt der Leitlinie
OrigoY = Picture1.ScaleWidth / 2 - 28
KompassX = OrigoX - Leitlinie * Sin(Orientierung * RAD) 'Koordinaten der Leitlinie
KompassY = OrigoY + Leitlinie * Cos(Orientierung * RAD) 'zu Beginn ist auf Null "=SÜD" gestellt
Picture1.Line (OrigoX, OrigoY)-(KompassX, KompassY) ', vbRed 'Leitlinie ziehen
End Sub
Private Sub MeinSlider_Click()
Picture1.Cls
'** Vorzeichen umkehren: S/W=+, S/O=-
Me.txtOrientierung_Abweichung_Grad.Text = MeinSlider.Value * -1
Orientierung = Me.txtOrientierung_Abweichung_Grad.Text
KompassX = OrigoX - Leitlinie * Sin(Orientierung * RAD)
KompassY = OrigoY + Leitlinie * Cos(Orientierung * RAD)
Picture1.Line (OrigoX, OrigoY)-(KompassX, KompassY) ', vbRed
End Sub
Private Sub txtOrientierung_Abweichung_Grad_Change()
'Möglichkeit Winkel selber in die TextBox zu schreiben
Picture1.Cls 'die vorherige Leitlinie löschen
If Me.txtOrientierung_Abweichung_Grad.Text = "" Then 'womit beim löschen nicht abbricht
Me.txtOrientierung_Abweichung_Grad.Text = 0
Orientierung = 0
End If
If IsNumeric(Me.txtOrientierung_Abweichung_Grad.Text) Then 'Nur - ist nicht numerisch -n ist numerisch
Orientierung = Me.txtOrientierung_Abweichung_Grad.Text 'Neuen Winkelwert merken
KompassX = OrigoX - Leitlinie * Sin(Orientierung * RAD) 'die gerichtete Leitlinie zeichnen
KompassY = OrigoY + Leitlinie * Cos(Orientierung * RAD)
Picture1.Line (OrigoX, OrigoY)-(KompassX, KompassY) ', vbRed 'Neue Richtung zeichnen
MeinSlider.Value = -Me.txtOrientierung_Abweichung_Grad.Text 'auch den Slider dazustellen
End If
End Sub
Private Sub txtOrientierung_Abweichung_Grad_LostFocus()
cmdOrientierung_Speichern.SetFocus
End Sub
Private Sub cmdOrientierung_Abbrechen_Click()
Picture1.Cls
Me.txtOrientierung_Abweichung_Grad.Text = 0
Orientierung = 0
Unload Me
End Sub
Private Sub cmdOrientierung_Speichern_Click()
Orientierung = Me.txtOrientierung_Abweichung_Grad.Text
'MsgBox Orientierung
Unload Me
End Sub
'********** | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|