Seite 1 von 1

Kreis zeichnen

Verfasst: 10 Dez 2010, 12:19
von mohvl
Hallo, wir haben die Aufgabe bekommen, das der Roboter einen Stift aus einem Stifthalter greifen soll und danach einen Schneemann, als 3 Kreise zeichen soll...

Nur weiß ich leider nicht wie man den Roboter Programmiert, damit er einen Kreis zeichnet und hab auch net so viel möglichkeiten das auszuprobieren, das ich den roboter nicht zu hause habe.
Evtl. habt ihr ja eine Idee wie man das Problem lösen kann??

Re: Kreis zeichnen

Verfasst: 10 Dez 2010, 12:29
von ft-user
Hallo,

das hier sollte ein guter Startpunkt sein: http://de.wikipedia.org/wiki/Bresenham-Algorithmus.

Viele Grüße

ft-user

Re: Kreis zeichnen

Verfasst: 10 Dez 2010, 13:22
von steffalk
Tach auch!

Auf einem Raster-Gerät kann man Kreise (und auch Ellipsen) unter ausschließlicher Verwendung von Ganzzahlen und Ganzzahlarithmetik zeichnen. Die folgende Routine habe ich aus meiner guten alten Modula-2-Bibliothek kopiert, sie zeichnet einen perfekten Kreis um die Koordinaten (x0, y0) mit Radius r in der Farbe c. Plot(x, y, c) muss an der Koordinate dann einen Punkt malen bzw. einen Stift dorthin bewegen (das ist immer max. 1 Schritt vom vorherigen Punkt entfernt):

Code: Alles auswählen

  PROCEDURE Circle (x0, y0, r: INTEGER;
                    c: CARDINAL);

    VAR
      e: INTEGER;
      x, y: INTEGER;

  BEGIN
    x := r;
    y := 0;
    e := 0;
    WHILE y <= x DO
      Plot (x0 + x, y0 + y, c);
      Plot (x0 - x, y0 + y, c);
      Plot (x0 + x, y0 - y, c);
      Plot (x0 - x, y0 - y, c);
      Plot (x0 + y, y0 + x, c);
      Plot (x0 - y, y0 + x, c);
      Plot (x0 + y, y0 - x, c);
      Plot (x0 - y, y0 - x, c);
      INC (y);
      INC (e, y * dy - 1);
      IF e > x THEN
        DEC (x);
        DEC (e, x * dx + 1);
      END;
    END;
  END Circle;
An einen Stiftplotter müsstest Du das wohl so anpassen, dass nicht wie hier, 8 Achtelkreise gleichzeitig gezeichnet werden, sondern die Sache tasächlich ein mal umläuft, damit der Stift den Kreis in einem Zug zieht. INC(i) inkrementiert i um 1 (ist also sowas wie i := i + 1), DEC dekrementiert um 1.

Gruß,
Stefan

Re: Kreis zeichnen

Verfasst: 13 Jan 2011, 13:39
von Tim_Fischer
Hallo
ich will auch eine plotter bauen der kreise zeichnen kann (X und Y achse mit endcoder).
Nur leider verstehe ich dein fach chinesisch nicht , köntest du das vielleicht für RoboPro
zeigen .
Mit freundlichen grüßen Tim_Fischer

Re: Kreis zeichnen

Verfasst: 13 Jan 2011, 23:09
von steffalk
Tach auch!

Leider bin ich zur Zeit mit Arbeit so eingedeckt, dass ich das nicht eben mal zwischenrein schieben kann, und ich habe auch gerade kein Plottermodell, an dem ich das testen könnte. Vielleicht kann jemand anderes, der in einer Textsprache programmieren und obigen Code lesen kann, das in RoboPro gießen?

Gruß,
Stefan

Re: Kreis zeichnen

Verfasst: 25 Jan 2011, 14:31
von robopro
Hallo,
machs doch einfach mechanisch!

Re: Kreis zeichnen

Verfasst: 25 Jan 2011, 17:06
von heiko
Wollte ich auch gerade vorschlagen. Wenn man den Stift mechanisch im Kreis bewegt, werden Kreise einfach und Geraden schwierig. Wenn man geschickt ist, kriegt man mechanisch sogar Ellipsen gezeichnet, und mit Ellipsensegmenten kann man schon eine Menge gekrümmte Linien malen.

Mit einer rechtwinkligen Apparatur einen Kreis zu zeichnen ist genauso einfach oder schwer, wie mit einer kreisförmigen Apparatur eine Gerade zu zeichnen. Beides geht, aber es gibt immer noch andere Möglichkeiten :-)

Heiko

Re: Kreis zeichnen

Verfasst: 25 Jan 2011, 17:49
von Tim_Fischer
Hallo
ja das stimmt aber mein plotter
soll kreise zeichnen können und
schreiben (plotter abc)Können
Danke

Re: Kreis zeichnen

Verfasst: 26 Jan 2011, 17:39
von robopro
Hallo,
die Achse an der die Achse zum Kreis Zeichnen ist, muss sich beim Schreiben ja nicht drehen!

Re: Kreis zeichnen

Verfasst: 27 Jan 2011, 09:09
von Tim_Fischer
Hallo
ja das stimmt
aberman kann nicht den radius einstellen

Re: Kreis zeichnen

Verfasst: 01 Feb 2011, 14:24
von robopro
Hallo,
ja doch, wenn die Achse vor/zurück nicht fixiert ist bzw. durch einen Motor angetrieben wird.

Re: Kreis zeichnen

Verfasst: 01 Feb 2011, 15:05
von Tim_Fischer
Hallo
ich habe aber keinen motor aus gang mehr frei

Re: Kreis zeichnen

Verfasst: 28 Feb 2011, 18:07
von Tim_Fischer
Hallo
könntet ihr mir mal helfen
Gruß Tim_Fischer

Re: Kreis zeichnen

Verfasst: 08 Apr 2011, 20:52
von Tim_Fischer
Hallo Alle

Re: Kreis zeichnen

Verfasst: 08 Apr 2011, 21:01
von Masked
Hallo,
Solange du nicht schreibst, bei was du Hilfe haben willst, wirst du auch Keine bekommen. Auch mehrere Postings untereinander helfen dann nicht.
Und es kann auch durchaus sein, dass mal Niemand dir helfen kann. Dann bekommst du halt keine Antwort.
Bitte denke an so etwas in Zukunft,
Martin

Re: Kreis zeichnen

Verfasst: 30 Mai 2011, 16:21
von Tim_Fischer
Hallo
ich und mein Freund wollen
einen plotter (x- und y-achse Endecoder) bauen der Kreise ,Vierecke etc. zeichnen und mit einem selbts entworfenem Plotter ABC schreiben kann .
wir schreiben das programm in robo Pro
und können des halb auch nicht den oben genannten Cod benutzen.
Gruß Tim_Fischer
P.S. haben keine ausgänge mehr frei am TX

Re: Kreis zeichnen

Verfasst: 06 Jun 2011, 17:57
von Tim_Fischer
Tim_Fischer hat geschrieben:Hallo
ich und mein Freund wollen
einen plotter (x- und y-achse Endecoder) bauen der Kreise ,Vierecke etc. zeichnen und mit einem selbts entworfenem Plotter ABC schreiben kann .
wir schreiben das programm in robo Pro
und können des halb auch nicht den oben genannten Cod benutzen.
Gruß Tim_Fischer
P.S. haben keine ausgänge mehr frei am TX
Kann mir bitte jemand helfen!!!!!!!!!!

Re: Kreis zeichnen

Verfasst: 07 Jun 2011, 07:02
von Pilami
Hallo,

ich glaube an dieser Stelle weiß niemand mit welchen Vorraussetzungen bzw. Vorkenntnissen ihr an die Aufgabe herangeht.
Der Algorythmus weiter oben im Thread soll ja ein Beispiel für die Herangehensweise sein. Die Übersetzung mußt du dann schon selber machen.
Über die mechanische Realisierung habt ihr euch auch noch nicht ausgelassen.

Grüße
Lothar

Re: Kreis zeichnen

Verfasst: 07 Jun 2011, 13:01
von fish
Hallo Tim_Fischer,
eine ganz primitive Möglichkeit Kreise zu zeichnen ist es sich ein gleichseitiges Vieleck zu Zeichnen und die Koordinaten der einzelnen Punkte an den Plotter zu übergeben (in einer Liste), welcher eine Verbindungslinie zwischen den Punkten zeichnent.

Re: Kreis zeichnen

Verfasst: 08 Jun 2011, 17:46
von Tim_Fischer
Hallo
1.Ich kann diesen Cod nicht Lesen.
2.Verstehe ich die lösung von fish nicht.
Gruß Tim_Fischer