| |

Visual-Basic EinsteigerRe: "V" zeichnen | |  | Autor: LesPaul | Datum: 01.04.10 09:32 |
| Hallo,
also... vielleicht bin ich wirklich zu dumm oder es gibt ein generelles Verständnisproblem?
Hier mal funktionsfähig mit Command1, Command2, Line1, Line2 und Text1
Private Sub GeneriereV(ByVal x1 As Double, ByVal y1 As Double, _
ByVal x2 As Double, ByVal y2 As Double, _
ByVal winkel As Double, _
ByRef xv As Double, ByRef yv As Double)
'Schneller Vorschlag
'funktioniert wenn x1 > x2 und y1 > y2
'oder wenn x1 < x2 and y1 < y2 (also nur in 2 Quadranten)
Const eps As Double = 0.0001
Const PI As Double = 3.14159265358979
'Länge bestimmen
Dim l As Double: l = Abs(x1 - x2) ^ 2 + Abs(y1 - y2) ^ 2
If l < eps Then xv = x1: yv = y1: Exit Sub
l = Sqr(l)
Dim winkel1 As Double: winkel1 = Asin(Abs(y2 - y1) / l)
If x1 > x2 And y1 >= y2 Then winkel1 = winkel1 + PI
'Endpunkt der zweiten Linie berechnen
'Winkel (wie üblich) im Bogenmass
yv = y1 + l * Sin(winkel + winkel1)
xv = x1 + l * Cos(winkel + winkel1)
'gegebene Linie zeichnen
'With Line1
' .x1 = x1: .y1 = y1: .x2 = x2: .y2 = y2
'End With
'berechnete Linie zeichnen
With Line2
.x1 = x1: .y1 = y1: .x2 = xv: .y2 = yv
End With
End Sub
Public Function Asin(ByVal x As Double) As Double
If x >= 1 Then Asin = Atn(1): Exit Function
If x <= -1 Then Asin = -Atn(1): Exit Function
Asin = Atn(x / Sqr(-x * x + 1))
End Function
Private Sub Command1_Click()
With Line1
.x1 = 4000
.y1 = 3000
.x2 = 1800
.y2 = 2800
End With
End Sub
Private Sub Command2_Click()
With Line1
.x2 = 4000
.y2 = 3000
.x1 = 1800
.y1 = 2800
End With
End Sub
Private Sub Form_Activate()
Command1.Value = True
Text1.SetFocus
End Sub
Private Sub Form_Load()
Me.Height = 6000
Me.Width = 8000
Command1.Caption = "X1 > X2, Y1 > Y2"
Command2.Caption = "X1 < X2, Y1 < Y2"
Line1.BorderWidth = 3
Line2.BorderWidth = 3
Line2.BorderColor = vbRed
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Dim wink As Double
wink = val(Text1.Text)
GeneriereV Line1.x1, Line1.y1, Line1.x2, Line1.y2, wink, Line2.y2, Line2.x2
End If
End Sub
Hoffe es hilft.
Danke |  |
 | 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 Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) 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-2025 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
|
|