Forum: PC-Programmierung Linie Berechnen


von Steffen W. (woern92)


Lesenswert?

Guten abend,

Ich stehe irgendwie auf dem Schlauch, ich möchte eine linie in wie soll 
ich sagen wegdaten umwandeln.

Also ich Habe:
X1 und Y1 als Startpunkt,
X2 und Y2 als Endpunkt

Mein Ziel:
AABAABAAB

A = X+
B = X-
C = Y+
D = Y-

Proggen tue ich in VisualBasic6.0 und ich komme einfach nicht weiter...

Wenn jemand nen guten Plan hätte währe ich sehr dankbar, es würde auch 
eine erklärung reichen wie ich dieses am besten anstelle.

MFG

von jmp (Gast)


Lesenswert?

N'amd,

lies dich mal hier ein:

https://de.wikipedia.org/wiki/Bresenham-Algorithmus

--jmp

von Steffen W. (woern92)


Lesenswert?

Es ist vielleicht nicht der schönste und schnellste geworden aber... 
TADAA.

Also wenn noch jemand interesse an sowas haben sollte ;)


1
Private Function Fahrweg(StartX As Long, StartY As Long, EndX As Long, EndY As Long) As String
2
Dim DifX As Long
3
Dim DifY As Long
4
Dim StepY As String
5
Dim temp As Long
6
Dim lasty As Long
7
Dim a As Long
8
Dim Ya As String
9
10
Dim CX As String
11
Dim CY As String
12
13
Dim IX As Long
14
Dim IY As Long
15
16
IX = 0
17
IX = 0
18
19
If StartX > EndX Then
20
    CX = "B"
21
    temp = EndX
22
    EndX = StartX
23
    StartX = temp
24
Else
25
    CX = "A"
26
End If
27
28
If StartY > EndY Then
29
    CY = "D"
30
    temp = EndY
31
    EndY = StartY
32
    StartY = temp
33
Else
34
    CY = "C"
35
End If
36
37
38
DifX = EndX - StartX
39
DifY = EndY - StartY
40
41
If DifX = 0 Then
42
    DifX = 5
43
    CX = ""
44
End If
45
46
If DifY = 0 Then
47
    DifY = 5
48
    CY = ""
49
End If
50
51
If DifX > DifY Then
52
53
StepY = DifX / DifY
54
55
lasty = 0
56
57
For a = 1 To DifX
58
    Ya = StepY * lasty
59
    If Ya < a Then
60
        Fahrweg = Fahrweg & CY
61
        lasty = lasty + 1
62
        IY = IY + 1
63
    End If
64
    Fahrweg = Fahrweg & CX
65
    IX = IX + 1
66
Next a
67
68
Else
69
70
StepY = DifY / DifX
71
72
lasty = 0
73
74
For a = 1 To DifY
75
    Ya = StepY * lasty
76
    If Ya < a Then
77
        Fahrweg = Fahrweg & CX
78
        lasty = lasty + 1
79
        IX = IX + 1
80
    End If
81
    Fahrweg = Fahrweg & CY
82
    IY = IY + 1
83
Next a
84
85
End If
86
87
End Function


MFG

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.