php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.12.2011, 15:03  
Benutzer
 
Registriert seit: 18.04.2010
Beiträge: 35
PHP-Kenntnisse:
Anfänger
F234k befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Mathematische Berechungen im Gradnetz nach Rotation

Hallo Forumler,

ich glaube, ich könnte diese Frage genauso gut in einem Mathematikforum stellen, aber ich hoffe auch hier Leute zu finden, die mir helfen können.

Folgendes:

Ich habe auf einer Seite eine Div-Box, die per Drag & Drop verschoben, rotiert und in der Größe geändert werden kann.
Das Verschieben, Rotieren und Größe ändern funktioniert ganz gut.
Ich rotiere die Box, indem ich die Mauskoordinaten hernehme und den Winkel der Rotation berechne und mittels CSS 3 rotate() dann drehe.
Um die Größe zu ändern bilde ich die Differenz der Anfangs- und Endmausposition und ändere die Werte von top, left, width und height.
So kann ich, wie z.B. in Photoshop an der rechten oberen Ecke klicken und die Box größer ziehen.

Das Problem ist jetzt, dass ich nach einer Rotation nicht mehr die einfache Berechnung der Differenz nutzen kann.
Ich will nun weiterhin die Möglichkeit bieten, die Höhe und Breite der Box zu verändern dabei ist ja aber alles um einen bestimmten Winkel gedreht.

Im Anhang ist ein Bild zum Szenario.

Gegeben sind alle schwarzen Werte, gesucht sind a und b. Und das ganze sollte beim weiteren rotieren immer noch funktionieren.
Man beachte auch dass die Mauspositionen von der linken oberen Ecke aus errechnet werden.

Wie komme ich an die Werte ran?
Miniaturansicht angehängter Grafiken
erledigt-mathematische-berechungen-im-gradnetz-nach-rotation-problem.jpg  
F234k ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.12.2011, 15:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Berechne erst die Skalierung und dann die Rotation? Den Winkel relativ zur Ausgangslage musst Du Dir natürlich merken und weiterbenutzen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 01.12.2011, 16:14  
Benutzer
 
Registriert seit: 18.04.2010
Beiträge: 35
PHP-Kenntnisse:
Anfänger
F234k befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Berechne erst die Skalierung und dann die Rotation
Wie meinst du das konkret, wie soll ich den Winkel denn in die Berechung einfließen lassen? Den Winkel Alpha habe ich.
F234k ist offline   Mit Zitat antworten
Alt 01.12.2011, 17:08  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

wenn du die transform methode in css verwendest für das rotieren dann kannst du doch auch scale nehmen oder etwa nicht?
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 01.12.2011, 21:16  
Benutzer
 
Registriert seit: 18.04.2010
Beiträge: 35
PHP-Kenntnisse:
Anfänger
F234k befindet sich auf einem aufstrebenden Ast
Standard

1. Habe ich dann bei der Berechnung das gleiche Problem.
2. Wird bei Scale auch der Inhalt der Box "gescaled", es soll sich aber nur Höhe und Breite ändern.
F234k ist offline   Mit Zitat antworten
Alt 01.12.2011, 22:22  
Benutzer
 
Registriert seit: 18.04.2010
Beiträge: 35
PHP-Kenntnisse:
Anfänger
F234k befindet sich auf einem aufstrebenden Ast
Standard

Ich glaube ich hab es, die Idee von nikosch war schon richtig.

Ich nehme die einzelnen Punkte und drehe sie quasi am Kreis wieder in den Urzustand, also auf 0 Grad, führe dann die Berechnungen durch und drehe danach alle Punkte wieder zurück.

Gleichung für das Drehen:

x' = (x-mX) cos(beta) - (y-mY) sin(beta) + u
y' = (x-mX) sin(beta) + (y-mY) cos(beta) + v

Mal schauen, ob das was wird.

EDIT: Funktioniert, prima!

Geändert von F234k (02.12.2011 um 19:00 Uhr).
F234k ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mathematik gradnetz, javascript mauskoordinaten zu gradzahl drehung, javascript nach rotation drag drop problem

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:51 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum