vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Linien zeichen 
Autor: Theo_kkv
Datum: 12.09.08 14:00

Hallo,
ich habe als Ausgangsdatenbestand eine Collection mit ca. 6000 Linieninformationen (X und Y Wert der jeweiligen Anfangs- und Endpunkte sowie weitere Sachinformationen). Die Koordinaten der Anfangs- und Endpunkte sind in Format
RRRRRRR.RRR
HHHHHHH.HHH
also 7 Vor- und 3 Nachkommastellen. Bisher habe ich nur Programmbeispiele mit ganzzahligen Koordinatenwerten gefunden. Bringt VB eigentlich den Fokus von selbst auf den Wertebereich der Punktwolke(Zoom auf Alles)?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Linien zeichen 
Autor: ModeratorRalf Ehlert (Moderator)
Datum: 12.09.08 14:53

Die ganzen DrawXXX-Methoden der Graphics-Klasse unterstützen auch Fließkommakoordianten (Singlewerte um genau zu sein). Gibt dafür öfters auch Klassenpaare für verschiedene Klassen, wie Rectangle/RectangleF, Point/PointF, Size/SizeF etc.

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Linien zeichen 
Autor: FlyingEagleLW
Datum: 12.09.08 15:33

Zitat:

Bringt VB eigentlich den Fokus von selbst auf den Wertebereich der Punktwolke(Zoom auf Alles)?


was hast du vor? die punkte/linien auf ne picturebox malen und dann zoom auf alles?
wird wohl so nicht gehen.

selbst wenn du auf ein image malst, und dieses dann in der PB anzeigst (mit entsprechenden einstellungen wie zoom, autosize etc.) wirst du zwar alle punkte sehen, aber die qualität ist - sagen wir "nicht berauschend" - ist halt nen pixel-zoom.

ich denke, falls du das vorhast was ich denke was du vorhast, dann wirst du ums "zoom-rechnen" nicht umhin kommen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Linien zeichen 
Autor: Theo_kkv
Datum: 13.09.08 12:49

ja was habe ich eigentlich vor. Der Plan war, eine einfache grafische Darstellung der Linien aus der Collection ("Punktwolke" war hier der falsche Begriff) auf eine Form zu zaubern. In meiner Unbekümmertheit nahm ich an, mit einer For Each Schleife a' la

for each linie as class_linie in coll_linien
'linie zeichnen lassen mit linie.x_anfang, linie.y_anfang, linie.x_ende, linie.y_ende
next linie
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Linien zeichen 
Autor: Theo_kkv
Datum: 13.09.08 21:38

bin heute Abend einen Schritt weiter gekommen. Folgendes Codefragment läuft ohne stocken durch:
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
Dim g As Graphics
Dim p As Pen
p = New Pen(System.Drawing.Color.Black)
g = e.Graphics
For Each linie As Class_Linienobjekt In coll_linienobjekte
g.DrawLine(p, linie.rechts_anfang, linie.rechts_ende, linie.hoch_anfang,linie.hoch_ende)
Next
End Sub
Nur sehe ich auf der Hauptform leider nichts. Die Linienmenge ist ja in Rechts um ca. 4 500 000m und in Hoch um 5 600 000m verschoben. Dadrauf müsste der Zoom.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Linien zeichen 
Autor: FlyingEagleLW
Datum: 14.09.08 20:41

Dadrauf müsste der Zoom. ... und den musste dir selber bauen befürchte ich.
bin auch nicht der super-mathematiker, aber du müsstest wohl deine koordinaten zuerst auf den clientbereich bezogen herunter rechnen und entsprechend prozentual anpassen.

ich hab das mal mit einfachen balkengraphen und werten aus ner DB gemacht, hab da erst den max-wert ermittelt, den dann auf meinen clientbereich herunterskaliert und dann alle anderen werte prozentual von dem max herunterskaliert. finde den code jetzt aber nicht mehr

PS: für code-darstellungen nutz bitte die taste "vb-code" unter dem editor, erhöht die lesbarkeit.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Linien zeichen 
Autor: Theo_kkv
Datum: 15.09.08 19:46

Sorry für den Codeschnipsel im Textfenster, kommt nicht wieder vor. Ungünstig ist bei der Drawline Methode, dass die Koordinaten der Punkte als Single vorliegen muss. Mit meinen Werten 7 Vor- und 3 Nachkommastellen komme ich da nicht zurecht. Gibt es da einen Ausweg?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Linien zeichen 
Autor: FlyingEagleLW
Datum: 15.09.08 20:26

zur not musst du die eben umrechnen in andere zahlen-formate, pixel ist eh ganzzahlig also integer, auch wenn es durchaus funktionen mit aufrufmöglichkeiten wie long oder single gibt. wird am ende ohnehin gerundet.

denke nicht, das es bei der "wolke" auf einen oder 2 pixel ankommt, so hochauflösend ist kein display.
und je höher du dann in deiner (selbst errechneten) zoomstufe gehst, um so genau wird es doch automatisch, vorausgesetzt du rechnest natürlich auch richtig
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Linien zeichen 
Autor: Theo_kkv
Datum: 17.09.08 09:39

mit den pixeln das stimmt. Ich habe gesehen, dass es in der Graphics Klasse die Methoden Transform und Transformpoints gibt. Vielleicht kommt man so eleganter an transformierte Koordinaten im Fensterbereich. Wenn alle Stricke reißen, muss eine Funktion zur Transformation selbst geschrieben werden.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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