Ich schaue aus meinem Dachfenster in den Hof meines Nachbarn. Sie haben einen Hund in der Mitte des Hofes an einen Pfosten gekettet. Der Hund rennt um den Hof, ist aber immer am Ende seiner Kette und hinterlässt am Ende eine Spur im Dreck. Normalerweise wäre diese Spur vollkommen kreisförmig, aber meine Nachbarn haben einige andere Stangen in ihrem Hof, an denen sich die Kette des Hundes verfängt. Jedes Mal, wenn die Hundekette auf eine Stange trifft, beginnt sich der Hund um die neue Stange zu drehen, wobei die Länge der Kette als Radius übrig bleibt. Da die Stangen, der Hund und die Kette alle null breit sind (meine Nachbarn sind Mathematiker), kann sich die Kette auf unbestimmte Zeit um eine Stange wickeln, ohne dass sich der Radius des Kreises verkürzt. Der Hund kann auch die Kette passieren (nur nicht das Halsband), wenn sich die Kette im Weg befindet. Nachdem ich diese Kuriosität eine Weile beobachtet habe, entscheide ich mich, einen Code zu schreiben, um den Hund meines Nachbarn zu simulieren. Der Code nimmt die Positionen eines Mittelpfostens, an den der Hund angekettet ist, die Positionen der anderen Pfosten in meinem Nachbarhof, die Länge der Kette und die Startposition des Hundes und gibt ein Diagramm aus, in dem die Weg, wo der Hund das Gras abgenutzt hat. Sie können davon ausgehen, dass eine beliebige Kombination der folgenden Elemente konstant ist (und sie daher nicht als Eingabe verwendet):
Position der Stange, an die der Hund angekettet ist
Länge der Kette
Startort des Hundes
Die Sonne geht auf, so dass der Raum auf dem Boden meines vom Fenster beleuchteten Dachbodens kleiner wird und ich immer weniger Platz habe, um meinen Code zu schreiben. Bitte versuchen Sie, die Byteanzahl Ihres Codes so gering wie möglich zu halten, damit ich auf meinem Dachboden Platz zum Zeichnen habe.
Testfälle
Hier gehe ich davon aus, dass der Hund 3 Einheiten südlich von der Stange beginnt, an der er angekettet ist (der rote Punkt) 0,0
. Ich habe aus Gründen der Klarheit angegeben, wo sich die Pole mit Punkten befinden. Sie müssen sie nicht in Ihre Ausgabe einbeziehen.
Poles at 1,2 -1,2
Poles at 0,.5
Poles at 0,1 1,1 -2,1 -1,-.5
Poles at 0,1 1,1
{0,.5}
vertikal ohne den größten Kreis gespiegelt . Der Hund fängt im Wesentlichen an der zweiten Stange zu fangen.
{0,-.5}
?