PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehle plot



Achim S.
24.10.2010, 13:09
Hallo Freunde
in einem Programm mit c wird der Befehle plot genommen.
Genau steht er da mit plot_(Name)(52,36). Der Name wird durch den der Datei ersetzt. Leider konnte ich keine Daten zum Befehl finden. Zu welcher Header gehört er und was bedeuten die beiden Zahle am Ende? Hatte schon rausbekommen, das sie eien Punkt am Display angeben. Welcen Bereich kann die Zahl annehmen? Leider konnte ich in den Büchern auch keine Antwort finden.
Achim

TobiKa
24.10.2010, 15:02
Also, da es nicht zum Standart C gehört, kann es alles bedeuten.
Wenn du nicht weisst wer diese Funktion geschrieben hat, bzw. wozu, bzw. wie die Funktion genau aussieht, wirst du damit nichts anfangen können.

Außerdem ist das nicht eine Zahl, es sind zwei!
Welche Größe sie annehmen können hängt von Display ab, aber wie gesagt solange du nciht weisst für was Display oder Zweck es gedacht ist, wirds dir nichts bringen.

Achim S.
24.10.2010, 18:27
Hallo
Es wird zuerst ein void plot aufgerufen und eine entsprechende Variable definiert. So mit grösse von x und y. Dann folgen gfx Befehle mit box und move. Im eigentlichen Programm kommt dann nur plo_(name) und zwei Zahlen. Beide liegen im Bereich der grösse des Displays. Den Befehl plot kenn in anderem Zusammenhang. z.B. bei der Ausgabe von Graphik oder Zeichnungen. Muss plot nicht in einer Bibliothek stehen, damit C weiss was er damit machen soll?
Achim

TobiKa
24.10.2010, 19:56
plot() kann auch in einer Include Datei stehen.
Aber wenn du weder Include noch Lib hast, spielt das eh keine Rolle.

Wo hast du den Quellcode denn überhaupt her?

Achim S.
24.10.2010, 20:09
Hallo
der Befehle steht in einer Datei des Herstellers. Es ist ein Beispiel Datei um auf dem Display (GFX) einiges ab Graphik darzustellen. Es dient zum Aufruf einer void (name). Dieser ist mir zum ersten mal begegnet. Ein Problem dabei sind die Zahlen. Diese geben eine Stelle an auf dem Display. In der Variablen void mit angabe der Box und anderen stehen auch Punkte drin. Wenn ich diese oder die anderen verändere beeinflussen sie sich gegenseitig. Versteh den Zusammenhang nicht.
Achim

oberallgeier
24.10.2010, 22:07
... der Befehle ... plot_(Name)(52,36) ... was bedeuten die beiden Zahle ... Welcen Bereich kann die Zahl annehmen ...Da Dir und uns weitere Informationen als die von Dir hier vorgestellten fehlen, ist eine Erläuterung etwas schwierig. Ich hatte schon Plotterroutinen geschrieben. Und jetzt wirds etwas diffizil, denn wir müssten unterscheiden, ob das ein eher hardwarelastiger oder softwarelastiger Befehl ist.

Softwareseitig würde damit geschehen: der Plotter fährt vom aktuellen Punkt zum Zielpunkt - hier also plot....(52,36). Auch Kreise werden so dargestellt - auch wenn der Softwarebefehl dann z.B. circle(x, y, r, alfa) heissen würde. Weiter "unten" in der Bibliothek, entweder der Library zum Einbinden des betreffenden Gerätes oder in der Plotter-Betriebssoftware selbst, wird daraus über sin und cos doch wieder eine Folge von einfachen "plot...(x,y)" - Befehlen. Dabei wird die Anzahl der Stützpunkte bei der sin-cos-Berechnung mit einem Blick auf die gewählte oder mögliche Auflösung berechnet.

Hardwareseitig sieht das dann gelegentlich etwas anders aus. Da wären als Parameter wohl noch ein (oder mehrere) Flag(s) dabei: Stift oben oder Stift unten - und es bedeutet dann, mit dem Stift - oben oder unten - an die genannte Koordinate zu fahren. Beim Bildschirm wird aus "Stift unten" natürlich "Pixel an". Dabei muss man sich softwareseitig nicht mal um die Plottergrenzen kümmern (wenns gscheit programmiert ist), weil die Betriebssoftware des Plotters diese Grenzen kennt (kennen MUSS) - und entsprechend reagiert. Dies auch, wenn ich z.B. einen X-Y-Schreiber als Plotter benutze und eine entsprechende Bibliothek dazu schreibe . . . . Hier steht noch ein bisschen was (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=484457#484457) dazu, wie es auf der "unteren" Ebene der Plotterroutine aussieht. Die Rege lungstechnik wiederum sorgt in der unmittelbaren Hardwareansteuerung dafür, dass die Antriebe der X- und der Y-Achse proportional zueinander so synchronisiert werden, dass die Linie eine Gerade wird und keine Zitterspur oder gar eine Hundekurve.


... ein Beispiel Datei um auf dem Display (GFX) einiges ab Graphik darzustellen ...Die Grafik geht genauso wie das Strichziehen mit dem Stift. Es werden eben, entsprechend der horizontalen und vertikalen Pixelauflösung und dem errechneten Verlauf der Linie auf dem Display - und der gewünschten Strichstärke - Pixel auf dem Display "sichtbar" gemacht. Heißt also anknipsen, schwärzen - oder was immer die Einstellungen an Pixel- = Strich- eigenschaften wünschen.

Fazit: Dein Befehl ist vermutlich ein Aufruf an eine Plotterlibrary, eine gerade Linie vom aktuellen Punkt zum Zielpunkt mit den Koordinaten X = 52 und Y = 36 zu ziehen. Einheiten sind Encoderticks, 1/10", nubische Füße, hannoversche Ellen, russische Werst oder welches Längenmaß auch immer.

Hoffe das hats ein bisschen klarer gemacht.

Achim S.
25.10.2010, 16:23
Danke für deine Antwort. Ein bisschen hat es geholfen. Diese Sache ist mir noch zu fremd. Geht aber alles auf Software hinaus. Es wird ja ein kleines Display damit angesteuert, kein Plotter selber. Habe aber angenommen, wenn dieser Befehl aufgerufen wird, muss er doch erst in einer #include .. definiert werden. Da könnten doch auch Parameter drin stehen. Da der Befehl in keinem Handbuch drin ist, kann er auch nur selbst definiert sein. So was spezielles für das Display. Danke für Eure Hilfe
Achim