mikrocontroller.net

Forum: Offtopic Berechnung der Rechteckverschiebung


Autor: Daniel Kremer (crazyman)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hoffe, dass mir jemand helfen kann irgendwie komme ich momentan 
nicht drauf. Es handelt sich um zwei Rechtecke in einander 
verschachtelt. Das innere Recheck wird gedreht soweit bis es mit der 
Spitze die Kante des äusseren Rechtecks berührt. Das ganze habe ich im 
Bild gezeigt. Wie kann man die Drehung und auch die Länge des Schenkels 
berechnen?
Danke!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie lauten die Formeln, die die neue Position eines Punktes angeben, 
wenn dieser um einen Winkel Alpha um einen Drehpunkt gedreht wird?

(Den Drehpunkt nimmst du sinnigerweise im Ursprung des 
Koordinatensystems an. D.h. deine Rechtecke sind rund um den Ursprung 
zentriert)

Die Fragestellung lautet dann:

Nehmen wir den Punkt links oben.
Wie weit muss man ihn drehen, damit seine X-Koordinate einen ganz 
bestimmten Wert (nämlich den der linken Kante des äusseren Rechtecks) 
annimmt.

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> ...damit seine X-Koordinate einen ganz
> bestimmten Wert (nämlich den der linken Kante des äusseren Rechtecks)
> annimmt.
Wenn das innere Rechteck seine Form behalten soll und die obere rechte 
Ecke nicht über das äussere Rechteck hinauslaufen darf, dann kommt es 
beim gezeigten Beispiel nie zur genannten Berührung an der linken Kante.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin Kohler schrieb:

>> ...damit seine X-Koordinate einen ganz
>> bestimmten Wert (nämlich den der linken Kante des äusseren Rechtecks)
>> annimmt.

> Wenn das innere Rechteck seine Form behalten soll und die obere rechte
> Ecke

Wieso oben rechts.
Ich hab explizit die Ecke 'oben links' angeführt.

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> Wieso oben rechts.
> Ich hab explizit die Ecke 'oben links' angeführt.
Weil die Ecke oben links die linke Kante des äusseren Rechtecks gar nie 
berührt, die Berührung oben rechts findet vorher statt (unter den von 
mir genannten Bedingungen)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin Kohler schrieb:

> Wenn das innere Rechteck seine Form behalten soll,

das geht leider aus der Aufgabenstellung nicht hervor, denn im 
allgemeinen Fall ist es keineswegs so, dass

* die Eckpunkte des inneren Rechtecks auf den Kanten des äusseren
  Rechtecks zu liegen kommen
* und das Rechteck ein Rechteck bleibt
* und das neue Rechteck dasselbe Längen/Breiten Verhältnis aufweist.

D.h. hier wäre eine Präzessierung der Aufgabenstellung notwendig.

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> D.h. hier wäre eine Präzessierung der Aufgabenstellung notwendig.
Genau.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich geh allerdings von diesen Parametern aus:

Das innere Rechteck soll tatsächlich nur gedreht werden (immer in 
dieselbe Richtung). Und zwar um seinen Mittelpunkt (Schnittpunkt der 
Diagonalen)
D.h. die Frage lautet: Wie weit kann es gedreht werden, bis irgendeiner 
(oder alle 4) der Eckpunkte zum ersten mal eine Kante des äusseren 
Rechtecks berührt (wenn überhaupt)

Die vorgenannte Berechnung muss natürlich über alle 4 Eckpunke gemacht 
werden und das Minimum der maximal 4 verchiedenen Verdrehwinkel gesucht 
werden.


Eine alternative Sichtweise würde so aussehen.
Vom Mittelpunkt des inneren Rechtecks wird ein Kreis zu jedem Eckpunkt 
aufgespannt. Gesucht ist dann der Schnittpunkt dieses Kreises mit dem 
äusseren Rechteck, wobei natürlich wieder der jeweils betrachtete 
Eckpunkt die Analyse leitet:

angenommen die Analyse läuft auf den Punkt links/oben
* Kreis im Mittelpunkt mit Radius  P_lo - M
* berechne die Schnittpunkte mit der senkrechten Geraden, die die
  linke Kante des äusseren Rechtecks repräsentiert.
* keine Lösung -> der Punkt wird diese Kante nie berühren, egal
  wie weit man dreht. Dieser Punkt limitiert also die Drehung nicht
* 1 Lösung -> ist ein Grenzfall. Mechanisch kommt es zwar zu einer
  Berührung: das innere Rechteck lässt sich aber trotzdem weiter
  drehen. TO muss entscheiden, was in dem Fall gilt
* 2 Lösungen -> da es sich um den Punkt links/oben handelt, gilt von
  den 2 Lösungen diejenige, deren y-Koordinate größer ist.


Dieselbe Analyse dann mit allen 4 Eckpunkten, wobei der Kreis immer nur 
mit senkrechten und waagrechten Kanten geschnitten werden muss (in 
diesem Fall) -> daraus lässt sich dann die kleinste Verdrehung wieder 
als das Minimum ermitteln.


Edit:
Die Betrachtung über Kreise hört sich auf den ersten Blick kompliziert 
an, ist aber im Grunde einfach, da die äusseren Kanten waagrecht bzw. 
senkrecht verlaufen.

Die Gleichung

      x^2 + y^2 = r^2

wird, je nachdem welcher Eckpunkt zu untersuchen ist, nach x bzw. y 
aufgelöst, wobei die jeweils andere Koordinate durch die Kante des 
äusseren Rechtecks vorgegeben ist und der Radius einfach die Distanz des 
Punktes zum Mittelpunkt des Rechtecks darstellt.

Eigentlich ist das sogar ziemlich fischig, so dass ich mich frage, warum 
der TO da nicht alleine drauf kommt.
Der Rest ist ein bischen Phythagors bzw. Umkehrung von sin/cos im 
rechtwinkeligen Dreieck. Alles nicht dramatisch.

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, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.