Kartendarstellung in C

Gast #3741074
Hallo Freunde,
ich hoffe ich bin in diesem Thread richtig.

Ich würde gerne Daten von Sensoren (Laserscanner, IR-Sensor, 
Ultraschallsensor) über C (Microsoft Visual Studio) einlesen und 
grafisch darstellen lassen. Am Ende soll eine Art Karte rauskommen.

Laserscanner geben mir Daten über Winkel und Position
Infrarotsensoren nur eine Spannung
Ultraschallsensoren eine Entfernung..

Problem ist das ich in einer C-Konsole nur glaub 32x32 Pixel 
(Buchstaben) habe. Das ganze sollte hochauflösender sein.

Habt ihr eine Idee wie ich das ganze darstellen kann?
Das des ganze dann ungefair so aussieht:
http://www.generationrobots.com/img/cms/kh3_lrf_in_playerstage.png

Gibt es ne Möglichkeit C und Java miteinander zu verbinden?
Das C an Java Daten schickt und Java die Verarbeitet?
Habt ihr eine andere/bessere Idee?

Bin für jede Anregung sehr dankbar!!
Gruß Tammi
Warum zur Hölle C? Eine ungeeignetere Sprache für Visualisierungen hast 
du wohl nicht finden können?

Nimm doch was, was dir eine möglichst high-levelige Grafikschnittstelle 
zur Verfügung stellt. Z.B. C#, Java oder C++. Da gibt es dolle 
Frameworks zum zeichnen (2D und 3D). Mit C wird das echt zum Krampf...
Gast
wenn Du schon Visual Studio einsetzt, dann solltest Du auch das 
Managed-C++ oder vielleicht besser C# als Programmiersprache dort 
nutzen. Ich persönlich bevorzuge eigenlich VisualBasic.Net ... aber das 
hat historische Gründe :-)

Bei Verwendung des .NET-Frameworks sind auch hochauflösende 
Grafikanwendungen eigentlich kein echtes Problem. Mit dem Graphics 
Objekt 
(http://msdn.microsoft.com/de-de/library/system.drawing.graphics%28v=vs.110%29.aspx) 
zum Beispiel kannst Du nahezu beliebig in einem Bildschrim-Formular oder 
einem Print-Dokument zeichnen. Das Objekt definert dafür zahlreichen 
Methoden zum Zeichnen von Text, Rechtecken, Kreisen, Polygonen usw.

Wenn Du noch einen Schritt weiter gehen willst, lohnt auch eine 
Einarbeitung in die sog. WPF-Anwendungen 
(http://de.wikipedia.org/wiki/Windows_Presentation_Foundation) Auch 
diese lassens ich mit der aktuellen Visual Studio Version erstellen.
Eine andere Möglichkeite wäre, dir sowas in SVG zusammenzustöpseln. Das 
kannst du einfach in C in eine Datei schreiben, und die dann mit dem 
Browser öffnen. (Hat auch den Vorteil, dass du beliebig weit 
hineinzoomen kannst)

Ich habe das mal gemacht, weil ich das für einen Webserver auf dem Robo 
erzeugt habe, siehe Anhang.
Tammi schrieb:
> Problem ist das ich in einer C-Konsole nur glaub 32x32 Pixel
> (Buchstaben) habe. Das ganze sollte hochauflösender sein.

Natürlich macht man sowas nicht in einer Textkonsole, sondern in einem 
Fenster welches beliebige Grafiken darstellen kann.

> Habt ihr eine Idee wie ich das ganze darstellen kann?
> Das des ganze dann ungefair so aussieht:
> http://www.generationrobots.com/img/cms/kh3_lrf_in_playerstage.png

Es gibt etliche Grafikbibliotheken - auch für C:

http://stackoverflow.com/questions/1701728/graphics-library-in-c


> Gibt es ne Möglichkeit C und Java miteinander zu verbinden?
> Das C an Java Daten schickt und Java die Verarbeitet?

Auch das wäre möglich. Also dass ein C-Programm die Sensordaten in eine 
Datei reinschreibt, und ein in Java (oder C++, C#, Python, ...) 
geschriebenes Programm liest diese Datei aus und zeichnet daraus die 
Grafik.

Wieder andere Möglichkeit, wie schon genannt, ist dass Dein C-Programm 
eine Bilddatei erzeugt die von beliebigen anderen Programmen geöffnet 
und dargestellt werden kann.
Gast
Im Canvas-Konzept sind ein paar rudimentäre Zeichen- und Füll-Befehle 
enthalten. Für die von Dir angegebenen Grafiken sollten diese 
ausreichen.
Auch ein paar Exportfunktionen (BMP, JPG usw.) sind vorhanden.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.