| |
VB.NET - Ein- und UmsteigerRe: 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. | |
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)? | |
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. | |
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 | |
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. | |
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. | |
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? | |
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 | |
| 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 |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere 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
|
|