Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 3D Darstellung "wetterkartenmäßig" .. (https://www.delphipraxis.net/74103-3d-darstellung-wetterkartenmaessig.html)

stoxx 28. Jul 2006 02:51


3D Darstellung "wetterkartenmäßig" ..
 
Hallo !
hat von Euch schonmal jemand sowas gebraucht ? Ich suche irgendeine Möglichkeit, 3 dimensionale Daten in einer "Wetterkartenansicht" darzustellen.

in etwa so:

http://www.wetteronline.de/cgi-bin/a...JJ=xxxx&KEY=DL

die dritte Dimension ist sozusagen als Fläche mit verschiedenen Farben dargestellt.

vielen Dank !

Luckie 28. Jul 2006 04:36

Re: 3D Darstellung "wetterkartenmäßig" ..
 
Ordne den Werten (oder Wertebereichen) der dritten Dimension doch einfach eine Farbe zu. Ich sehe da kein Problem.

atreju2oo0 28. Jul 2006 06:26

Re: 3D Darstellung "wetterkartenmäßig" ..
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ich habe GENAU sowas mal für meinen Daddy programmiert...
Das nennt sich Isopletendiagramm!

Kannste Dir ja mal anschauen....
(Is aber nicht kommentiert)

P.S. @ Lucky : Das Farbe zuordnen war nicht schwer... Aber die Interpolation zwischen den
Messwerten in Abhängigkeit von deren geo. Lage war nicht ganz ohne...
;o)

stoxx 28. Jul 2006 12:45

Re: 3D Darstellung "wetterkartenmäßig" ..
 
hey .. vielen Dank !

mit Random Werten funktioniert es wohl. Beim Öffnen der Datei diagramm.dia stürzt das Programm leider unter Exceptions ab.
Ich würde Dir ja gaaaaanz gaaaanz dringend empfehlen, Dich mal mit Object-orientierter Programmierung zu beschäftigen.
Dein Programm ist nämlich leider überhaupt nicht wiederverwendbar, obwohl Du Dir sicher viel Arbeit gemacht hast. Ich finde es halt schade.
Ansonsten wäre es ja echt eine schöne Komponente, weil auch gleich die Niveaus zu den Flächen mit eingezeichnet werden !
Ich seh in Deinem Quelltext noch nicht durch im Moment.
Könntest Du noch kurz beschreiben, wie Du das gemacht hast mit der Interpolation.

Wenn man zum Beispiel eine Diagramm von 10 mal 10 Messpunkten hätte.
Wie berechnest Du da die Fläche des zu zeichnenden Polygons ?
Vielen Dank !

atreju2oo0 28. Jul 2006 13:01

Re: 3D Darstellung "wetterkartenmäßig" ..
 
Ehrlich gesagt hast Du da genau mein schwachen Punkt getroffen!
'Ich hab keinen blassen von OOP...
Hab halt mit Turbo Pascal angefangen und dann nur "weiter" gemacht...
:o(

Die Interpolation ist eigentlich relativ einfach wenn man den Trick erstmal raus hat...

Nehmen wir mal an die Punkte sind so:
p1 p2
p3 p4

Dann berechne ich als erstes die Linien zwischen p1 und p2 und danach die Linie zwischen p3 und p4.
Das ist ne ganz einfache Lineare Funktion von der jeweils 2 Punkte bekannt sind!
Tafelwerk sollte die restlichen Fragen beantworten... ;o)
Danach kann man sozusagen mit nem Lineal das senkrecht liegt an den Linien langlaufen und für jeden Pixel auch eine Linie berechnen da ja nun auch dort jeweils 2 Punkte bekannt sind.

Den Absturz kann ich noch nicht ganz nachvollziehen denn ich hab hier auf Arbeit leider kein Delphi... Muss mit VB klar kommen :o(

Wenn Du mir nen gutes Tutorial zeigen kannst, dann würde ich auch am Wochenende mal sehen was ich machen kann um nen bisschen mehr Struktur reinzubringen...
Aber ich find immer nur relativ oberflächliche Tutorials zur OOP und muss auch ehrlich gestehen, dass ich da bis jetzt noch nicht so hinterher war...

P.S: Es ist auch möglich die Abstufung in mehr als 2 Farben vorzunehmen (z.B. von rot zu blau zu gelb)

stoxx 28. Jul 2006 13:53

Re: 3D Darstellung "wetterkartenmäßig" ..
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von atreju2oo0
Ehrlich gesagt hast Du da genau mein schwachen Punkt getroffen!
'Ich hab keinen blassen von OOP...
Hab halt mit Turbo Pascal angefangen und dann nur "weiter" gemacht...
:o(

Die Interpolation ist eigentlich relativ einfach wenn man den Trick erstmal raus hat...

Nehmen wir mal an die Punkte sind so:
p1 p2
p3 p4

Dann berechne ich als erstes die Linien zwischen p1 und p2 und danach die Linie zwischen p3 und p4.
Das ist ne ganz einfache Lineare Funktion von der jeweils 2 Punkte bekannt sind!
Tafelwerk sollte die restlichen Fragen beantworten... ;o)
Danach kann man sozusagen mit nem Lineal das senkrecht liegt an den Linien langlaufen und für jeden Pixel auch eine Linie berechnen da ja nun auch dort jeweils 2 Punkte bekannt sind.

Den Absturz kann ich noch nicht ganz nachvollziehen denn ich hab hier auf Arbeit leider kein Delphi... Muss mit VB klar kommen :o(

Wenn Du mir nen gutes Tutorial zeigen kannst, dann würde ich auch am Wochenende mal sehen was ich machen kann um nen bisschen mehr Struktur reinzubringen...
Aber ich find immer nur relativ oberflächliche Tutorials zur OOP und muss auch ehrlich gestehen, dass ich da bis jetzt noch nicht so hinterher war...

P.S: Es ist auch möglich die Abstufung in mehr als 2 Farben vorzunehmen (z.B. von rot zu blau zu gelb)


Hi !

also ich habe auch mal mit Turbo Pascal angefangen und hatte ähnliche Probleme !
Hab mal bissl gesucht, der Fachbegriff ist wohl Triangulation.
Wenn Du Dir den Algorithmus selber ausgedacht hast, dann Hut ab !
siehe hier: http://www.texture.de/XYFunction/Hil...n.htm#Interpol
(da steht aber leider nichts näher beschrieben)
ich muss mir das nochmal näher ansehen, kann aber sein, Du hörst die nächsten 2 Wochen nichts mehr von mir ;-)
also nicht wundern, wenn ich mich nicht gleich melde.

vielleicht ein paar Tips wegen der OOP.
Zum einen hast Du alle funktionen als Methoden von Form1 deklariert, das ist natürlich äußerst ungünstig !
Hier was zur motivation.
Am besten ist es sich vorzustellen, dass Objekte records mit Funktionen und proceduren sind.
Genauer die Funktionen und die dazugehörigen Daten ! Da man mit Daten ja auch immer was machen möchte.
Oder Funktionen, die sich ihre eigenen Daten selber "halten". Du solltest Dir geistig immer vorstellen, dass Objekte ein Programm in unterschiedliche Anwendungsgebiete trennen sollen.
(Compiliert wird es ja wieder ein einziges Programm ;-) )
Hilfreich ist immer, den Wunsch zu hegen, den Quelltext vereinfachen zu wollen.
Du willst also Funktionalität auslagen und separieren.

Wenn Du zum beispiel die Fläche eines Rechtecks berechnen willst, kannst Du das ja ganz einfach über
eine normale Funktion fläche := BerechneRechteckFläche(h, b : Integer);
Der Übergang zur objektorientierten Programmierung wäre der Schritt.

Object.Höhe := 5;
Object.Breite := 10;
object.Calculate.

(Object = Funktion mit Daten)

Der Unterschied ist jetzt, dass das Object seine Daten selber speichert, und Du nun abfragen könntest.
Diagonallänge := object.Diagonale;
Oder Du kannst dem object auch die Punkte geben oder oder oder.


Was sich in letzter ZEit immer sehr bewährt hat, erstmal eine leere Klasse zu erstellen. Für irgendein Problem, was anliegt.
Und danach programmierst Du die Sache und alles MUSS nur mit Textdateien funktionieren.
Also die Klasse (ein Object davon) bekommt die Daten und alle Ausgaben macht dies erstmal in eine Textdatei.
Dafür hat bei mir jetzt jede Klasse auch die Funktion function TMyKlasse.ToString;
Ist auch viel viel schöner zum Finden von Fehlern, wenn man sich zu jedem beliebigen Zeitpunkt den aktuellen zustand in einen String schmeißen und danach in eine Textdatei abspeichern kann.
Erst wenn das funktioniert, wird die Klasse in das PRogramm eingebunden.

Nett zum Lernen fand ich eigentlich immer diese Autogeschichten aus den Büchern von Doberenz und Kowalski.
Da fahren so kleine (einfache) Autos über das Formular und können objectorientiert gesteuert werden.
Ich war mal so frei und hoffe die Autoren sind mir nicht böse, dass ich die Projekte mal anhänge.
Die Beispiele bauen aufeinander auf und bringen auch langsam die Vererbung mit ins Spiel !
Schau es Dir am besten mal an.

viele Grüße
stoxx

PMM 28. Jul 2006 14:00

Re: 3D Darstellung "wetterkartenmäßig" ..
 
In TEEChart Pro (www.steema.com) gibt es dafür einen Diagrammtype names: TColorGridSeries
Kostenpflichtig aber sehr leistungsfähig!
PMM

atreju2oo0 28. Jul 2006 14:25

Re: 3D Darstellung "wetterkartenmäßig" ..
 
Vielen Dank Stoxx...
Werd es mir zuhause mal reinziehen...

Vielleicht kann ich Dir in 2 Wochen dann ja nen nettes OO-Projekt anbieten ;o)

stoxx 28. Jul 2006 14:25

Re: 3D Darstellung "wetterkartenmäßig" ..
 
@ PMM
Danke ! werde mal prüfen. TeeChart Standart, was bei Delphi dabei ist, hat es ja leider nicht.
Wenn man die Bilder auf der Webseite so anschaut ist die Version ja auch anscheinend uralt ;-)

Bei 400-500 Dollar sollte man es noch auf anderen Anwendungsfelder benötigen, denke ich.


@ atreju2oo0

wichtig ist immer, dass die verschiedenen Klassen(Objekte) die kleinste MÖGLICHE gemeinsame Schnittstelle zueinander haben.
Mit dem Chart betreffend. Ganz Professionell ist es wie TChart Pro wohl eine eigene komponente die auch gleich selber alles tut und macht.
Oder aber wie in den TAuto Beispielen bekommt die Auto-Klasse nur das Canvas, auf das es zeichnen soll.
Ganz schlimm wäre es, wenn es Form1 bekommt, denn dann ist es nur mit Form1 verwendbar und nicht mehr wiederzuverwenden.

atreju2oo0 28. Jul 2006 14:34

Re: 3D Darstellung "wetterkartenmäßig" ..
 
Meine Lösung:
Suchen und ersetzen in Verbindung mit copy und paste...

Ist das etwa kein guter Stil?

:roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:32 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz