Hallo zusammen,
Ich habe vor ein Grafikobjekt "CoordinateSystem" zu erstellen.
Dieses Grafikobjekt befindet sich bereits in einer größeren Klasse mit dem Namen "DrawingManager"
Der unten gezeigte Code funktioniert soweit wunderbar. Der Code hat jedoch die Anmutung einer Garagenbastelei.
Ich empfinde die Parameterübergabe für die Achsen als ziemlich sperrig (vgl. Class Form1, Zeile 12). Das geht bestimmt einfacher.
Wenn das Grafikobjekt "CoordinateSystem" im Form1 initialisert wird, muss ich für jede Grafikinstanz (Rahmen, x-Achse, y-Achse) ein eigenes Objekt mitgeben.
Geht das nicht einfacher, indem diese Grafiken bereits in der Klasse "CoordinateSystem" instanziert werden?
Am Ende der Reise möchte ich gerne über meine Form1 Klasse lediglich die Position und die Größe des Koordinatensystems beschreiben.
Das dort Achsen eingezeichnet werden, soll später über die Klasse "CoordinateSystem" passieren. Denn die Eigenschaften der Achsen und deren Position ist später sowieso direkt abhängig von der Größe und Position des Koordinatensystems.
Für eure Hilfe bin ich dankbar.
Falls ich ein paar Begrifflichkeiten oben durcheinander gewirbelt haben sollte, weist mich ruhig daraufhin.
Ich als aktueller Programmier-Noob habe da noch einiges zu lernen.
Schönen Gruß
Euer Don_Puno
*Topic verschoben*
Ich habe vor ein Grafikobjekt "CoordinateSystem" zu erstellen.
Dieses Grafikobjekt befindet sich bereits in einer größeren Klasse mit dem Namen "DrawingManager"
Der unten gezeigte Code funktioniert soweit wunderbar. Der Code hat jedoch die Anmutung einer Garagenbastelei.
Ich empfinde die Parameterübergabe für die Achsen als ziemlich sperrig (vgl. Class Form1, Zeile 12). Das geht bestimmt einfacher.
Wenn das Grafikobjekt "CoordinateSystem" im Form1 initialisert wird, muss ich für jede Grafikinstanz (Rahmen, x-Achse, y-Achse) ein eigenes Objekt mitgeben.
Geht das nicht einfacher, indem diese Grafiken bereits in der Klasse "CoordinateSystem" instanziert werden?
Am Ende der Reise möchte ich gerne über meine Form1 Klasse lediglich die Position und die Größe des Koordinatensystems beschreiben.
Das dort Achsen eingezeichnet werden, soll später über die Klasse "CoordinateSystem" passieren. Denn die Eigenschaften der Achsen und deren Position ist später sowieso direkt abhängig von der Größe und Position des Koordinatensystems.
Für eure Hilfe bin ich dankbar.
Falls ich ein paar Begrifflichkeiten oben durcheinander gewirbelt haben sollte, weist mich ruhig daraufhin.
Ich als aktueller Programmier-Noob habe da noch einiges zu lernen.
Schönen Gruß
Euer Don_Puno
VB.NET-Quellcode
- 'Diese Klasse befindet sich im Namespace "DrawingManager"
- Public Class CoordinateSystem
- Private _surface As Graphics
- Private _color As Color
- Private _rahmen As Rectangle
- Private _xAxis As Graphics
- Private _yAxis As Graphics
- Public Sub New(Surface As Graphics, xAxis As Graphics, yAxis As Graphics, Color As Color, Rahmen As Rectangle)
- _surface = Surface
- _color = Color
- _rahmen = Rahmen
- _xAxis = xAxis
- _yAxis = yAxis
- Dim pt1x As New PointF(_rahmen.Location.X, _rahmen.Location.Y + (_rahmen.Size.Height) / 2)
- Dim pt2x As New PointF(_rahmen.Location.X + _rahmen.Size.Width, _rahmen.Location.Y + (_rahmen.Size.Height) / 2)
- Dim pt1y As New PointF(_rahmen.Location.X + (_rahmen.Size.Width / 2), _rahmen.Location.Y)
- Dim pt2y As New PointF(_rahmen.Location.X + (_rahmen.Size.Width / 2), _rahmen.Location.Y + _rahmen.Size.Height)
- _xAxis.DrawLine(Pens.Black, pt1x, pt2x)
- _yAxis.DrawLine(Pens.Black, pt1y, pt2y)
- _surface.DrawRectangle(Pens.Black, _rahmen)
- End Sub
- End Class
VB.NET-Quellcode
- Public Class Form1
- Public Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles Me.MouseMove
- mouse_pos_x = e.X
- mouse_pos_y = e.Y
- End Sub
- Private Sub Form1_MouseClick(sender As Object, e As MouseEventArgs) Handles MyBase.MouseClick
- Dim CoordinateSystem As New DrawingManager.CoordinateSystem(Me.CreateGraphics, Me.CreateGraphics, Me.CreateGraphics, Color.Transparent, New Rectangle(mouse_pos_x, mouse_pos_y, 250, 250))
- End Sub
- End Class
*Topic verschoben*
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()