ubuntuusers.de

GnuPlot Polare Darestellung

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

mirob

Anmeldungsdatum:
12. Juni 2009

Beiträge: Zähle...

Hallo Forum-User! Ich hoffe, ich bin hier richtig, denn ich verzweifle so langsam am Programm GnuPlot.

Ich möchte mit GnuPlot die Werte eines Ultraschallsensors mit Teilkreisen auf einem Polarkoordinatenpapier darstellen. Die Daten für das Diagramm kommen aus einer Datei, welche von GnuPlot permanent neu eingelesen wird. (Die Datei besteht im Grunde aus den gemessenen Entfernungen, welche mit Hilfe eines Pythonskriptes vom Sensor gelesen und in die Datei geschrieben werden). Bisher funktioniert die Darstellung der Entfernungen mit Hilfe von Punkten auf dem Polarkoordinatenpapier, jedoch möchte ich statt der Punkte kleine Kreisausschnitte (Entfernung + Öffnungswinkel des Sensors) darstellen. - Wie macht man so etwas?

Bisheriges GnuPlot:

set polar
set grid polar
set angles degrees
set trange[0:180]
set yrange[0:300]
set xrange[-300:300]
set parametric
plot [70:110] t,50,"ultra1.dat"
pause 0.1
reread

Die Linien bei 70° und 110° stellen den Öffnungswinkel des Sensors dar, die Punkte bei der Darstellung die Entfernung. Wie ist es möglich, mit Hilfe der Daten aus der Datei Kreisausschnitte zwischen den beiden Linien des Öffnungswinkels zu ziehen? Ich habe schon eniges ausprobiert und komme einfach nicht auf die Lösung (plot t,"ultra1.dat" geht leider nicht - gibt es einge Möglichkeit, die Entfernungen aus der Datei einzeln auszulesen und in eine Variable zu schreiben, das würde mein Problem schon lösen).

Vielleicht kennt sich ja jemand ein wenig mit GnuPlot aus und kann mir helfen, habs jetzt schon ewig versucht...

Mit freundlichen Grüßen, Robert

Maui_Muc

Anmeldungsdatum:
31. Dezember 2006

Beiträge: 441

Hallo Robert,

ich würde gerne versuche dir zu helfen aber ich muss ganz ehrlich gestehen, dass ich nicht so recht verstehe, was du genau erreichen willst. Aber nicht etwa, die Punkte einfach mit Linien zu verbinden oder?

Gruß

Stefan

mirob

(Themenstarter)

Anmeldungsdatum:
12. Juni 2009

Beiträge: 3

Hallo Stefan. Anstatt Linien wären mir Teilkreise lieber - im Prinzip soll GnuPlot einen Teilkreis zwischen den Öffnungswinkeln (die sind von Hand ermittelt) mit der gemessenen Entfernung als Radius darstellen. Das mit den Linien habe ich mir auch erstmal überlegt - wenn ich mit dem Python-Skript für jede gemessene Entfernung einfach genug Punkte (gleiche Entfernung, aber Winkel variiert zwischen unterem und oberen Öffnungswinkel) in die Datei schreiben lasse und diese dann mit Linien verbinde, dann geht das schon mal in die richtige Richtung, hatte halt bloß gedacht, dass es einfacher gehen könnte. Also der gemessene Wert wäre z.B. 300cm und ich weiß, dass der Öffnungswinkel zwischen 70 und 110 Grad liegt, dann lass ich Python einfach sowas in die Datei schreiben:

300 70
300 80
300 90
300 100
300 110

Und das ganze mit GnuPlot mit Linien verbinden - nicht schön, aber selten 😉

Werde das jetzt erstmal so machen, aber vielleicht geht es ja doch noch einfacher?

Gruß, Robert

Maui_Muc

Anmeldungsdatum:
31. Dezember 2006

Beiträge: 441

Hallo Robert, jetzt verstehe ich was du erreichen willst. Ich würde von mir behaupten, dass ich mich mit gnuplot ganz gut auskenne. Leider fällt mir keine bessere Lösung als die von dir Vorgeschlagene ein. Das ist ein echt kniffeliges Problem. Ich würde vorschlagen lass dir einfach viele Stützstellen berechnen und die dann mit Linien verbinden. Ich gebe dir recht, das ist nicht schön aber zur Not frisst der Teufel auch Fliegen. ☺

Einen Tipp habe ich aber noch für dich. Trenne in deinem Daten-File alle Teilkreise mit zwei Absätzen voneinander, dann wird die Linie zwischen zwei Teilkreisen nicht durchgezogen. Z.B.:

#Teilkreis 1
70 1
...
#Stützstellen
...
110 1


#Teilkreis 2
120 2
...
#Stützstellen 
...
140 2


#Teilkreis 3
... 

Vielleicht kennst du das schon ich wollte es aber dennoch los werden.

Ein paar Anregungen habe ich noch für dich. Dieser Code plotet einen Teilkreis mit r=1.4. Er öffnet sich bei 60° und endet bei 120°:

set view square 
set parametric
set polar 
set grid polar 
set xrange [-2:2] 
set yrange [-2:2] 
plot [60*pi/180:120*pi/180] t,1.4

Vielleicht ist ein Befehl dabei den du brauchen kannst.

Gruß

Stefan

mirob

(Themenstarter)

Anmeldungsdatum:
12. Juni 2009

Beiträge: 3

Hallo Stefan. Das mit dem Teilkreis per parametric hatte ich auch schon mal probiert, leider ließ sich dort halt als Wert nicht die Entfernung aus der Datei verwenden. Der Hinweis mit den Absätzen ist toll, das war mir neu und ist für diese Aufgabe sehr sinnvoll. Werd mich wohl heut abend nochmal da ransetzen und ein wenig rumprobieren 😉

Vielen Danke für deine Hilfe.

Gruß, Robert

Antworten |