0 Daumen
1,8k Aufrufe

Aufgabe:

ich habe es versucht aber kriege es aber leider selber nicht hin mit alleine mit logischen denken da ich schon viele Jahre kein Mathematikunterricht hatte.

Ich hab folgendes Problem:

problem.jpg

Gegeben sind die Masse von äußeren/blauen Rechteck (genauer gesagt die vier einzelnen Eckpunkte) und ein Winkel von der Drehung vom inneren Rechteck (z.B. in diesen Fall -30 Grad). Es müssen die vier einzelnen Eckpunkte vom inneren Rechteck berechnet werden welche immer an den Linien vom äußeren Rechteck liegen müssen.

Avatar von

2 Antworten

+1 Daumen

Mit der Masse läßt sich nicht arbeiten ;-)

Eine Drehung (um den Ursprung O) wird durch eine Matrix beschrieben

\( Do(a) \, :=  \,  \left(\begin{array}{rr}\operatorname{cos} \left( a \right)&-\operatorname{sin} \left( a \right)\\\operatorname{sin} \left( a \right)&\operatorname{cos} \left( a \right)\\\end{array}\right) \)

z.B. sei E=(-1,3)

dann ist

E'=Do(-30°) E ≅ (0.63, 3.1)

Nachtrag: Deine Zeichung zeigt eine Drehung von +30° ...

Avatar von 21 k

Es ist aber nicht einfach ein Drehung vom Rechteck. Je nach Seitenverhältnis vom äußeren Rechteck und dem vorgegebenen Winkel ist das Seitenverhältnis vom inneren Rechteck anders. Mir würde ausreichen wenn ich mit einen Winkel von 0 bis 90 Grad die Punkte ausrechnen könnte :).

Also bei 0 Grad ist das neue Rechteck gleich wie das "Begrenzungs"-Rechteck. Mit einen Winkel bis 45 müsste sich das neue Rechteck in der Größe etwas verkleinern und schmaler werden wenn ich mir das richtig vorstelle.. ab 45 Grad geht's andersrum.

Ja dann wirst Du nicht drumrum kommen "anders" zu beschreiben und am besten mit realen Daten versehen die ich anfassen/verarbeiten kann...

Fest ist nur das äußere Rechteck und Winkel für den inneren. Das neue Seitenverhältnis entsteht durch die Begrenzung vom äußeren Rechteck und Winkel. Ich hoffe das ist verständlich oder hab ich ein Denkfehler? Ich versuche morgen was in Zahlen darzustellen...

Für ein Ausgangsrechteck mit den Maßen a und b ergeben sich für die Maße des um den Winkel α gedrehten Rechtecks die Werte
u = |(b·sin(α) - a·cos(α)) / (sin^2(α) - cos^2(α))|  und 
v = |(a·sin(α) - b·cos(α)) / (sin^2(α) - cos^2(α))|

p  =  (a·cos^2(α) - b·sin(α)·cos(α)) / (cos^2(α) - sin^2(α))

q  =  (b·sin^2(α) - a·sin(α)·cos(α)) / (sin^2(α) - cos^2(α))

Rechtecke.png

Text erkannt:

1

Nach dem ich gestern nicht mehr dazu gekommen bin, will ich wenigsten auch auf den Dreh gekommen sein ;-):

rot.gif

 30° bei meinem Modell entspricht 15° bei Gast hj2166 - wie groß der Winkel bis zur Diagonalen ausfällt hängt vom Seitenverhältnis des Rechtecks ab ...

Das sieht schon vielversprechend aus! Vielen Dank auch beiden schon mal!!

Ich hab mich erst mal die Lösung vom "Gast hj2166" ausprobiert. Da ich es in eine App verwenden will, hab ich die Berechnung von Punkt p

p  =  (a·cos2(α) - b·sin(α)·cos(α)) / (cos2(α) - sin2(α))

so umgesetzt:

double sin = Math.sin(angleInRadian);
double cos = Math.cos(angleInRadian);
double px = (ax * (cos * cos) - bx * sin * cos) / ((cos * cos) - (sin * sin));
double py = (ay * (cos * cos) - by * sin * cos) / ((cos * cos) - (sin * sin));

Aber das Ergebnis ist, wenn nicht falsch, dann zumindest irgendwie verdreht..

a(5.0,0.0)
b(0.0,5.0)

Radian(0.09): 5.0 Grad   -->  p(5.04;-0.44)

Radian(0.17): 10.0 Grad → p(5.16;-0.91)

Radian(0.26): 15.0 Grad → p(5.39;-1.44)

Radian(0.44): 25.0 Grad → p(6.39;-2.98)

Radian(0.52): 30.0 Grad → p(7.5;-4.33)

... beide Werte, x und y wandern aus dem Rechteck. Sieht du vielleicht den Fehler?

Sieht du vielleicht den Fehler?


Berechne  t = (ax*cos - by*sin) / (cos*cos - sin*sin) ,

nimm   p = t*cos  und  q = t*sin

und erhalte die Punkte  P = (p | 0) , Q = (ax | by-q) ,  R = (ax-p | by) ,  S = (0 | q)
des gedrehten Rechtecks.

Dankeschön! Verstehe es nicht ganz aber funktioniert schon mal ziemlich gut. Bei genau 45 Grad sehe ich ein "Springer" wenn ich ein Quadrat verwende.

[ Hier würde ich gerne das Problem mit eine GIF darstellen, scheint aber nicht möglich zur sein als neue User oder finde kann man ein Bild im Kommentar einfügen? ]

Viel wichtiger wäre mit das es auch mit Rechtecken funktioniert die keine Quadrate sind. Da scheint die aktuelle Berechnung ab ca. der diagonalen Position unvollständig zu sein.

Mit

PointF a = new PointF(3, 0);
PointF b = new PointF(0, 6);

komme ich ab 27 Grad in Negative Bereiche. Ab ca 64 sieht es wieder gut aus. Sieht so aus als müsste man die Winkel dazwischen "ignorieren".?? Der Bereich ist abhängig vom Seitenverhältnis des äußeren Rechtecks, bzw. vom Winkel...


Was auch ein kleines Problem ist dass das Rechteck auf 0;0 stehen muss sonst passen die Punkte nicht.

Wenn ich z.B. folgendes mache:

PointF a = new PointF(5, 1);
PointF b = new PointF(1, 5);

double t = (a.x*cos - b.y*sin) / (cos*cos - sin*sin);
float p = (float)(t*cos);

PointF P = new PointF(p, a.y);

dann wandert P.x ab 77 Grad auf kleiner 1.

15.0 Grad -->  p(3.94;1.0)
30.0 Grad -->  p(3.17;1.0)
70.0 Grad -->  p(1.33;1.0)
76.0 Grad -->  p(1.0;1.0)
81.0 Grad -->  p(0.68;1.0)
89.0 Grad -->  p(0.09;1.0)

Ich kann Dir meine Lösung in Mathcad darstellen:

P = Liste der Punkte (A=P1)

R = P Drehen um M,α (Mittelpunkt Rechteck P)

R' = Cutt R Abschneiden auf Kanten von P

R' das Ergebnis zu P,a,b,M,α

blob.png

Zum Abgleich

 blob.png

An der Diagonalen ist Schluß α=2 arctan(a/b).

Dann schneidet z.B. Rˋ1 nicht mehr an der senkrechten Kante sondern an der waagrechten Kante vorbei  ====> neue Sachlage neue Rechnung!

Danke wächter! Ich komme mit deine Ansatz weiter. Hab es bis jetzt Umgesetzt bis zur Diagonalen und sieht schon sehr gut aus!

OK, nach der Diagonalen kann nichts mehr kommen bis es bei 90° dann ein Quadrat ausschneidet. Es sei denn Du erklärst wie das Kunstwerk "jenseits" der Diagonalen zustande kommen soll.

blob.png

-75° <===> 180-75°

BTW: Bilder per Copy&Paste einfügen wie Text auch oder einfach in das  Schreibfenster ziehen - bitte zuschneiden und auf größgerechete Auflösung beachten.

OK, nach der Diagonalen kann nichts mehr kommen

Genau. Die Winkel zwischen den Diagonalen ist nicht möglich darzustellen. Hab ich gesten abends auch bemerkt :)

output.gif

Dankeschön!!

Nach der Diagonale muss ich es noch drehen / neue Rechnung machen.

Es reizte mich natürlich, das ganze ion CindyJS zu realisieren:

https://jsfiddle.net/WernerSalomon/k2c74na0/2/

Bewege den Punkt \(X\) auf dem Kreis. Durch Verschieben der Punkte  \(B\) und \(C\) kann man die Proportionen des äußeren Rechtecks verändern.

Die Konstruktion ist so gewählt, dass sich der Punkt \(D'\) immer auf der Geraden durch \(DA\) befindet und \(C'\) immer auf der Geraden durch \(CD\).

Jaa, mich auch :-)...

Ich hab den Slider X (selbst da haben wir uns abgesprochen) noch mit der Rechteckfarbe (sq) gekoppelt

fillpoly(sq,color->hue(X.y/10))

@sniper

was mußt Du nach der Diagonalen drehen?

---

https://jsfiddle.net/j9zfgmov/2

0 Daumen

Hallo sniper,

hat das große Rechteck die Maße \(a\) und \(b\) so hat das kleine $$a'  = a \sqrt 3 - b \\ b' = b \sqrt 3 - a$$möchtest Du noch wissen wieso, oder brauchst Du nur da Ergebnis?

Die Positionen ergeben sich dann daraus. Sind die vier Eckpunkt außen$$A(0;\,0), \space B(a;\, 0), \space C(a ;\, b), \space D(0;\, b)$$dann liegen die vier Eckpunkte des einbeschriebenen Rechtecks bei $$A' \left( \frac 12 \left( b\sqrt 3 - a  \right) ; 0\right) \\ B' \left( a;\, \frac 12(a\sqrt 3 - b)\right) \\ C' \left( \frac 12(3a-b\sqrt 3);\, b \right) \\ D' \left( 0;\, \frac12 (3b - a \sqrt 3)\right)$$Gruß Werner

Avatar von 48 k

Ich brauch aber nicht die Maße sondern Positionen von den Eckpunkten...

sondern Positionen von den Eckpunkten...

Ja stimmt .. stand auch so in Deiner Frage ;-) ich habe es hinzu gefügt.

Kannst du mir bitte Erklären wie ich in deine Rechnung den Winkel einbeziehen kann. Ich steh gerade auf dem Schlauch... :-(

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community