Forum: PC-Programmierung Kartendarstellung in C


von Tammi (Gast)


Lesenswert?

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

von Borislav B. (boris_b)


Lesenswert?

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...

von doedel (Gast)


Lesenswert?

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.

von Simon S. (-schumi-)



Lesenswert?

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.

von Mark B. (markbrandis)


Lesenswert?

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.

von Amateur (Gast)


Lesenswert?

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.

von Gozo (Gast)


Lesenswert?

>Warum zur Hölle C? Eine ungeeignetere Sprache für Visualisierungen hast
>du wohl nicht finden können?
Auch wenn ich aus der C# Ecke komme:
Das GTK+ Framework ist auch in C geschrieben.
http://www.gtk.org/

von Borislav B. (boris_b)


Lesenswert?

Gozo schrieb:
> Auch wenn ich aus der C# Ecke komme:
> Das GTK+ Framework ist auch in C geschrieben.
> http://www.gtk.org/

Vieles ist in C geschrieben ;-)
Das heißt aber nicht, dass auch für den konkreten Anwendungsfall 
sinnvoll ist.

von Tammi (Gast)


Lesenswert?

Vielen Dank für die vielen Antworten!!
Werd mir das morgen mal in Ruhe anschauen ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.