Transformation eines affinen Koordinatensystems. Transformationen von Koordinatenräumen Affine Transformationen von Koordinaten für Dummies

Englisch: Wikipedia macht die Seite sicherer. Sie verwenden einen alten Webbrowser, der in Zukunft keine Verbindung zu Wikipedia herstellen kann. Bitte aktualisieren Sie Ihr Gerät oder wenden Sie sich an Ihren IT-Administrator.

中文: Die 以下提供更长,更具技术性的更新 (仅英语)).

Spanisch: Wikipedia ist der Standort am sichersten. Ich verwende derzeit einen Web-Navigator, der in Zukunft keine Verbindung zu Wikipedia herstellen kann. Bitte kontaktieren Sie Ihren Administrator oder wenden Sie sich an Ihren Administrator. Es gab noch mehr Aktualisierungen und mehr Technik auf Englisch.

ﺎﻠﻋﺮﺒﻳﺓ: ويكيبيديا تسعى لتأمين الموقع أكثر من ذي قبل. أنت تستخدم متصفح وب قديم لن يتمكن من الاتصال بموقع ويكيبيديا في المستقبل. يرجى تحديث جهازك أو الاتصال بغداري تقنية المعلومات الخاص بك. يوجد تحديث فني أطول ومغرق في التقنية باللغة الإنجليزية تاليا.

Französisch: Wikipédia erweitert die Sicherheit seiner Website. Sie nutzen derzeit einen alten Web-Navigator, der sich nicht mehr mit Wikipedia verbinden muss, bevor er fertig ist. Vielen Dank für Ihren Besuch oder wenden Sie sich an Ihren Informatikadministrator. Zusätzliche Informationen sowie Techniken und Englisch sind hier verfügbar.

日本語: ???

Deutsch: Wikipedia erhöht die Sicherheit der Webseite. Du benutzt einen alten Webbrowser, der in Zukunft nicht mehr auf Wikipedia zugreifen kann. Bitte aktualisieren Sie Ihr Gerät oder sprechen Sie mit Ihrem IT-Administrator. Ausführlichere (und technisch detaillierte) Hinweise finden Sie unten in englischer Sprache.

Italienisch: Wikipedia stellt die sicherere Website wieder her. Bleiben Sie in einem Webbrowser, der Sie in Zukunft nicht mehr mit Wikipedia verbinden wird. Bitte kontaktieren Sie Ihren Informatiker oder kontaktieren Sie ihn. Für mehr Bass ist eine Erweiterung mit mehr Details und Technik in Englisch verfügbar.

Magyar: Biztonságosabb auf Wikipédia gelesen. Ein toller, mit Használsz, nem lesz képes kapcsolódni a jövőben. Die meisten modernen Geräte haben ein Problem mit der Reparatur verursacht. Alább olvashatod a részletesebb magyarázatot (angolul).

Schweden: Wikipedia wird nicht mehr gefunden. Sie nutzen ein älteres Webbrowser, der Ihnen die Möglichkeit gibt, Wikipedia aus der Community zu lesen. Aktualisieren Sie Ihr Gerät oder wenden Sie sich an Ihren IT-Administrator. Es ist eine lange Zeit und es gibt noch mehr technische Erläuterungen auf Englisch.

हिन्दी: विकिपीडिया साइट को और अधिक सुरक्षित बना रहा है। आप एक पुराने वेब ब्राउज़र का उपयोग कर रहे हैं जो भविष्य में विकिपीडिया से कनेक्ट नहीं हो पाएगा। कृपया अपना डिवाइस अपडेट करें या अपने आईटी व्यवस्थापक से संपर्क करें। नीचे अंग्रेजी में एक लंबा और अधिक तकनीकी अद्यतन है।

Wir entfernen die Unterstützung für unsichere TLS-Protokollversionen, insbesondere TLSv1.0 und TLSv1.1, auf die Ihre Browsersoftware für die Verbindung zu unseren Websites angewiesen ist. Die Ursache dafür sind meist veraltete Browser oder ältere Android-Smartphones. Oder es könnte sich um einen Eingriff durch Unternehmens- oder Privatsoftware „Web Security“ handeln, die die Verbindungssicherheit tatsächlich herabsetzt.

Sie müssen Ihren Webbrowser aktualisieren oder dieses Problem auf andere Weise beheben, um auf unsere Websites zugreifen zu können. Diese Meldung bleibt bis zum 1. Januar 2020 bestehen. Nach diesem Datum kann Ihr Browser keine Verbindung mehr zu unseren Servern herstellen.

Lassen Sie uns zunächst definieren, was Transformationen sind. Nehmen wir an, wir haben ein Modell (der Einfachheit halber soll es ein Dreieck sein). Und drei Koordinatenräume: Objektraum (in dem dieses Dreieck beschrieben wird), Weltraum und Kameraraum. Eine Transformation ist also ein Ausdruck der Koordinaten eines Objekts, das sich in einem Koordinatensystem (Objekt) befindet, unter Verwendung der Koordinaten eines anderen Koordinatensystems (zuerst der Welt und dann der Kammer).

Wie ich bereits geschrieben habe, erleichtert die Verwendung verschiedener Koordinatenräume die Erstellung einer virtuellen Welt. Objekte werden im Objektraum erstellt und jedes Objekt verfügt über seinen eigenen Koordinatenraum. Der Weltraum verbindet alle Objekte der virtuellen Welt und ermöglicht es Ihnen, sehr schwierige Dinge ganz einfach zu machen (zum Beispiel das Bewegen von Objekten). Nachdem die Szene erstellt und alle Objekte verschoben wurden, werden die Weltkoordinaten in den Kamerakoordinatenraum umgewandelt. Wir werden nur eine Kamera verwenden, aber in realen Situationen ist es möglich, mehrere zu erstellen. Mehrere Kameras kamen beispielsweise im genialen Spiel Earth 2150: Escape from the Blue Planet zum Einsatz.

Wovon rede ich also: Um mehrere Koordinatenräume nutzen zu können, sind Transformationen notwendig.

Erinnern wir uns zunächst an etwas über Vektoren. Dabei hilft uns folgende Abbildung:

Was sehen wir hier: Weltkoordinatenraum durch Achsen gebildet x, y, z. Einheitsvektoren ich, J, k werden Einheitsvektoren oder Basisvektoren des Weltkoordinatenraums genannt. Mit der Summe dieser Vektoren können Sie jeden Vektor im Weltkoordinatenraum erhalten.

v- ein Vektor, der den Ursprung der Weltkoordinaten und den Ursprung der Objektkoordinaten verbindet. Die Länge des Vektors v ist gleich dem Abstand zwischen dem Ursprung der Weltkoordinaten und dem Ursprung der Objektkoordinaten. Betrachten Sie die Vektorform v=(5,2,5):

v= x* ich+ y* J+ z* k = 5*ich + 2*J + 5*k

Wie ich oben geschrieben habe, kann man mit Hilfe von Basisvektoren jeden Punkt (Vektor) eines gegebenen Raumes darstellen, was diese Gleichung zeigt.

Vektoren P,Q,R- Basisvektoren des Objektraums. Bitte beachte, dass ich,J,k wird nicht unbedingt gleich sein P,Q,R.

In dieser Abbildung habe ich einige Details weggelassen: Im Objektkoordinatenraum sind drei Punkte angegeben, die ein Dreieck bilden. Außerdem habe ich die Kamera nicht angegeben, die auf das Dreieck gerichtet ist.

Lineare Koordinatentransformationen mithilfe von Matrizen

Schauen wir uns zunächst die Einheitsvektoren an ich,J,k, deren Richtung mit den Koordinatenachsen des Weltraums zusammenfällt und Einheitsvektoren oder Basisvektoren des Weltraums genannt werden.

Schreiben wir diese Vektoren in Koordinatenform als Matrizen:

ich= [ i x i y i z ] = [ 1 0 0 ] J= [ j x j y j z ] = [ 0 1 0 ] k= [ k x k y k z ] = [ 0 0 0 ]

Hier werden die Vektoren durch 1x3-Matrizen (Zeilenmatrizen) dargestellt.

Wir können diese Basisvektoren mit einer einzigen Matrix schreiben:

Und was noch wichtiger ist: Wir können diese Vektoren auch so schreiben:

Wie Sie sehen, ist das Ergebnis eine Einheitsmatrix der Größe 3x3 oder 4x4.

Es scheint, was ist daran falsch? Denken Sie nur daran, dass es möglich ist, einige dumme Basisvektoren des Raums in einer Matrix aufzuschreiben. Aber nein, du wirst nicht „denken“!!! Hier verbirgt sich eines der schrecklichsten Geheimnisse der 3D-Programmierung.

Wie ich oben geschrieben habe, kann jeder Punkt, der in der virtuellen Welt vorhanden ist, in Vektorform geschrieben werden:

v= x* ich+ y* J+ z* k

Wo v- Punkt im Raum, x,y,z - Koordinaten des Punktes v, A ich,J,k- Basisvektoren des Raumes. Beachten Sie, dass wir hier von einem Punkt sprechen, es sich jedoch um einen Vektor handelt. Ich hoffe, Sie erinnern sich daran, dass ein Vektor und ein Punkt im Wesentlichen dasselbe sind.

Die obige Formel wird als Vektorform eines Vektors bezeichnet. Es gibt einen anderen Namen – eine lineare Kombination von Vektoren. Das stimmt übrigens.

Schauen wir uns nun noch einmal den Vektor an v. Schreiben wir es in eine Zeilenmatrix: v = [ 5 2 5 ]

Beachten Sie die Vektorlänge v ist der Abstand vom Ursprung des Weltkoordinatenraums zum Ursprung des Objektkoordinatenraums.

Versuchen wir, diesen Vektor mit einer Matrix zu multiplizieren, in der die Basisvektoren des Weltraums geschrieben sind (ich hoffe, Sie erinnern sich an die Matrixmultiplikationsformel):

Als Ergebnis erhalten wir die folgende Gleichung:

v M = [ (xi x + yj x + zk x) (xi y + yj y + zk y) (xi z +yj z + zk z) ]

Wir haben einen Vektor. Diese. Das Ergebnis der Multiplikation eines Vektors mit einer Matrix ist ein Vektor. In diesem Fall hat sich der Vektor nicht geändert. Wenn die Elemente der Matrix jedoch keine Einsen (auf der Hauptdiagonale) und Nullen (alle anderen Elemente) sind, sondern einige andere Zahlen, ändert sich der Vektor. Daher können wir sagen, dass die Matrix M eine Transformation von Koordinatenräumen durchführt. Betrachten Sie die allgemeine Formel:

a, b sind Vektoren, M ist die Transformationsmatrix von Koordinatenräumen. Die Formel kann wie folgt gelesen werden: „Die Matrix M transformiert Punkt a in Punkt b.“

Schauen wir uns zur Verdeutlichung ein Beispiel an. Wir müssen Koordinaten vom Objektraum (p,q) in den Weltraum (i,j) konvertieren:

ich,J- Grundvektoren des Weltraums, P,Q- Basisvektoren des Objektraums. Im Bild sieht man, dass der Objektkoordinatenraum um -45 Grad um die z-Achse gedreht ist (im Bild nicht sichtbar). Darüber hinaus Vektoren Q,P 1,5-mal mehr Vektoren ich,J, was bedeutet, dass im Objektraum definierte Objekte im Weltraum eineinhalb Mal kleiner aussehen.

Um zu visualisieren, wie das Objektraummodell nach der Transformation aussehen wird, können Sie einen Rahmen für Vektoren hinzufügen ich,J:

Sie können den gleichen Rahmen zeichnen P,Q, aber ich habe die Zeichnung nicht überladen.

Nehmen wir nun an, wir haben ein Dreieck im Objektraum gezeichnet (Abb. a). Im Weltraum wird dieses Dreieck um 45 Grad gedreht und um ein Drittel verkleinert (Abb. b):

Sammeln wir nun alle Elemente des Puzzles: Wie wir wissen, kann die Transformation mithilfe einer Matrix erfolgen. Die Zeilen der Matrizen sind die Basisvektoren. Die Koordinaten der Basisvektoren des Weltkoordinatenraums im Objektraum lauten wie folgt:

ich = [ 0.473 0.473 ] J = [ -0.473 0.473 ]

Wie haben wir die Koordinaten herausgefunden? Erstens wissen wir, dass Koordinatenräume um 45 Grad relativ zueinander gedreht sind. Zweitens sind Objektraum-Basisvektoren 1,5-mal länger als Weltraum-Basisvektoren. Mit diesem Wissen konnten wir die Koordinaten der Vektoren leicht berechnen ich,J.

Als Ergebnis erhalten wir die folgende Transformationsmatrix (in diesem Fall Drehung oder Rotation):

Oder im dreidimensionalen Raum:

Alle Werte sind Näherungswerte.

Dies ist eine Matrix zur Transformation von Koordinaten vom Objektraum in den Inertialraum (ich erinnere Sie daran, dass die Basisvektoren des Inertialraums mit den Basisvektoren des Weltraums übereinstimmen). Um ein Dreieck vom Objektraum in den Inertialraum umzuwandeln, müssen Sie alle Punkte (Vektoren) des Dreiecks mit der Transformationsmatrix multiplizieren.

Im letzten Beispiel sind wir auf zwei Transformationen gestoßen: Rotation und Skalierung. Beide Transformationen sind linear.

Nachdem wir uns nun Beispiele für lineare Transformationen angesehen haben, können wir uns mit der Definition vertraut machen:

Lineare Transformationen sind Koordinatentransformationen, die Räume nicht verzerren. Diese. alle parallelen Linien bleiben parallel (es gibt jedoch eine Ausnahme). Oder ganz einfach: Bei linearen Transformationen wird aus einem Dreieck nie ein Kreis oder ein Quadrat, sondern es bleibt immer ein Dreieck.

Nachdem wir nun grob verstanden haben, was lineare Transformationen sind, schauen wir uns konkrete Formeln an:

Skala

k 1 ,k 2 ,k 3 – Skalierungsfaktoren. Wenn k 1, nehmen die Objekte zu.

Drehung

Drehung um die x-Achse:

Drehung um die Y-Achse:

Drehung um die Z-Achse:

Übrigens ist es diese Matrix (der Drehung um die Z-Achse), die wir oben verwendet haben.

Die Drehung kann nicht nur um die Achsen erfolgen, die den Koordinatenraum bilden, sondern auch um beliebige Geraden. Die Formel für die Drehung um eine beliebige Gerade ist ziemlich komplex, wir sind noch nicht bereit, sie zu berücksichtigen.

Das Wichtigste aus dem oben Gesagten ist Folgendes: Die Zeilen der Transformationsmatrix enthalten die Basisvektoren des neuen Koordinatenraums, ausgedrückt als Koordinaten des alten Koordinatenraums. .

Wenn Sie diese einfache Sache verstehen (dass die Matrix die Basisvektoren des neuen Raums enthält), können Sie anhand der Transformationsmatrix leicht den neuen Koordinatenraum erkennen.

Und das Letzte:
Lineare Transformationen können keine Objekte verschieben. Diese. Objekte können vergrößert/verkleinert werden, sie können gedreht werden, bleiben aber bewegungslos.

Affine Transformationen

Affine Transformationen sind lineare Transformationen mit Übersetzung. Mit affinen Transformationen können Sie Objekte verschieben.

Die Formel ist ganz einfach:

A = bM + v;

Dabei ist b der Startpunkt, M die lineare Transformationsmatrix, a der Transformationspunkt und v der Vektor, der die beiden Räume verbindet. Oder anders ausgedrückt: Es handelt sich um einen Vektor, dessen Länge gleich dem Abstand zwischen zwei Koordinatenräumen ist.

Im Bild zu Beginn der Lektion ist die affine Transformation erforderlich: zunächst eine lineare Transformation vom Objektraum in den Inertialraum und dann die Übertragung aller Punkte des Objektraums in den Weltraum mithilfe des Vektors v.

Um Berechnungen in der 3D-Grafikprogrammierung zu vereinfachen, werden 4D-Vektoren, 4x4-Matrizen und sogenannte homogene Koordinaten verwendet. Die vierte Dimension spielt keine Rolle, sie wird nur zur Vereinfachung der Berechnungen eingeführt.

Ein vierdimensionaler Vektor verwendet, wie Sie vielleicht vermutet haben, vier Komponenten: x, y, z und w. Die vierte Komponente des Vektors wird als homogene Koordinate bezeichnet.

Es ist sehr schwierig, eine homogene Koordinate geometrisch darzustellen. Daher betrachten wir einen dreidimensionalen homogenen Raum mit den Koordinaten (x,y,w). Stellen wir uns vor, dass eine zweidimensionale Ebene am Punkt w=1 definiert ist. Dementsprechend wird ein zweidimensionaler Punkt in einem homogenen Raum durch die folgenden Koordinaten (x,y,1) dargestellt. Alle Punkte im Raum, die nicht in der Ebene liegen (sie liegen in Ebenen mit w != 1), können durch Projektion auf eine zweidimensionale Ebene berechnet werden. Dazu müssen Sie alle Komponenten dieses Punktes in eine homogene aufteilen. Diese. Wenn w!=1, lauten die Koordinaten des Punktes in der „physischen“ Ebene (wo wir arbeiten und wo w=1 ist) wie folgt: (x/w,y/w,w/w) oder (x/w ,j/w ,1). Sehen Sie das Bild an:

Die Koordinaten der Vektoren lauten wie folgt:

V 1 = [ 3 3 3 ] v 2 = [ 3 1 0 ] v 3 = [ 3 -2 -2 ]

Diese Vektoren werden wie folgt auf die „physikalische“ Ebene (w=1) projiziert:

V 1 = [ 1 1 1 ] v 3 = [ -1,5 1 1 ]

Die Abbildung zeigt drei Vektoren. Bitte beachten Sie, dass, wenn ein Punkt in der w=0-Ebene liegt, dieser Punkt nicht auf die physikalische Ebene (Vektor v 2) projiziert werden kann.

Für jeden Punkt auf der physischen Ebene gibt es unendlich viele Punkte im homogenen Raum.

Im vierdimensionalen Raum ist alles genau gleich. Wir arbeiten im physischen Raum, wo w = 1: (x,y,z,1). Wenn als Ergebnis der Berechnungen w != 1 ist, müssen Sie alle Koordinaten des Punktes in ein homogenes Koordinatensystem aufteilen: (x/w,y/w,z/w,w/w) oder (x/ w,y/w,z/w,1 ). Es gibt auch einen Sonderfall, wenn w = 0. Wir werden uns diesen später ansehen.

Kommen wir nun zum Üben: Warum zum Teufel brauchen wir eine homogene Koordinate?

Wie wir bereits herausgefunden haben, stellt eine 3x3-Matrix eine lineare Transformation dar, d.h. es enthält keine Übertragung (Bewegung). Für die Übertragung wird ein separater Vektor verwendet (und dies ist eine affine Transformation):

V = aM + b

Diese. Wir multiplizieren alle Punkte (Vektoren) des Objekts mit der Transformationsmatrix M, um zum Trägheitskoordinatensystem zu gelangen (dessen Basisvektoren mit den Basisvektoren des Weltkoordinatensystems übereinstimmen), und gelangen dann mithilfe des Vektors b zum Weltraum . Ich möchte Sie daran erinnern, dass Vektor b den Beginn des Objektraums und den Beginn des Weltraums verbindet.

Wenn Sie also vier Dimensionen verwenden, können Sie sowohl lineare Transformationen (Rotation, Skalierung) als auch Translationen in einer Matrix unterbringen.

Stellen wir uns vor, dass die vierte Komponente immer gleich eins ist (obwohl wir bereits herausgefunden haben, dass dies nicht der Fall ist). Nun kann die lineare Transformation mithilfe einer 4x4-Matrix dargestellt werden:

Schauen wir uns die Formel zum Multiplizieren von Vektoren mit einer Transformationsmatrix im vierdimensionalen Raum an:

V x = (xi x + yj x + zk x + w*0) v y = (xi y + yj y + zk y + w*0) v z = (xi z + yj z + zk z + w*0) v w = (x*0 + y*0 + z*0 + w*1) Wie wir sehen können, sind die Komponenten des transformierten Vektors unter Verwendung einer 4x4-Matrix gleich den Komponenten des transformierten Vektors unter Verwendung einer 3x3-Matrix. Die vierte Komponente wird, wie wir vereinbart haben, immer gleich eins sein, sodass sie einfach verworfen werden kann. Daher können wir sagen, dass die von Matrizen der Größe 3x3 und 3x4 durchgeführten Transformationen äquivalent sind.

Schauen wir uns nun die Transfermatrix an:

Multiplizieren Sie einen beliebigen Vektor aus dem Objektraum (siehe Abbildung am Anfang der Lektion) mit dieser Matrix und Sie können diesen Vektor im Weltkoordinatenraum ausdrücken (dies gilt, wenn die Basisvektoren von Objekt- und Weltraum gleich sind).

Bitte beachten Sie, dass es sich hierbei ebenfalls um eine lineare Transformation handelt, allerdings nur im vierdimensionalen Raum.

Mit dem Matrixprodukt können wir die Rotationsmatrix und die Translationsmatrix kombinieren:

Diese letzte Matrix ist genau das, was wir von Anfang an brauchten. Sie sollten genau wissen, was alle Elemente bedeuten (mit Ausnahme der 4. Spalte).

In homogenen Koordinaten wird ein Punkt wie bei jedem Skalierungsfaktor geschrieben. Wenn einem Punkt außerdem seine Darstellung in homogenen Koordinaten gegeben wird, dann können seine zweidimensionalen kartesischen Koordinaten als und gefunden werden.

Die geometrische Bedeutung homogener Koordinaten ist wie folgt (Abb. 6). beliebiger Punkt auf einer Geraden

Reis. 6. Geometrische Interpretation homogener Koordinaten

Somit wird eine Eins-zu-eins-Entsprechung zwischen dem produktiven Punkt mit den Koordinaten (x, y) und der Menge der Zahlentripel der Form (W×x, W×y, W), W≠0, hergestellt, was ermöglicht Wir betrachten die Zahlen W×x, W×y, W als neue Koordinaten dieses Punktes. Somit können homogene Koordinaten als Einbettung einer um den Faktor W skalierten zweidimensionalen Ebene in die Ebene z = W (hier z = 1) im dreidimensionalen Raum dargestellt werden.

Die Verwendung homogener Koordinaten erweist sich bei der Lösung selbst einfacher Probleme als praktisch.

Wenn das Anzeigegerät nur mit ganzen Zahlen arbeitet (oder wenn nur mit ganzen Zahlen gearbeitet werden muss), kann es für einen beliebigen Wert von W (z. B. W=1) keinen Punkt mit einheitlichen Koordinaten (0,5; 0,1; 2,5) geben vertreten. Mit einer vernünftigen Wahl von W kann jedoch sichergestellt werden, dass die Koordinaten dieses Punktes ganze Zahlen sind. Insbesondere mit W=10 für das betrachtete Beispiel haben wir (5; 1; 25).

Ein anderer Fall. Um zu verhindern, dass die Transformationsergebnisse zu einem arithmetischen Überlauf führen, können Sie für einen Punkt mit den Koordinaten (80000; 40000; 1000) beispielsweise W=0,001 annehmen. Als Ergebnis erhalten wir (80; 40; 1).

Die Hauptanwendung homogener Koordinaten sind jedoch geometrische Transformationen, da mit Hilfe von Tripletts homogener Koordinaten und Matrizen dritter Ordnung jede affine Transformation in der Ebene beschrieben werden kann. In ähnlicher Weise können Sie mithilfe von Quadrupeln homogener Koordinaten und Matrizen vierter Ordnung jede Transformation im dreidimensionalen Raum beschreiben.

Bekanntlich werden Translations-, Skalierungs- und Rotationstransformationen in Matrixform als geschrieben

P' = P × S;

Die Übersetzung wird separat (mittels Addition) von der Skalierung und Rotation (mittels Multiplikation) implementiert. Wenn wir Punkte in homogenen Koordinaten ausdrücken, können alle drei Transformationen durch Multiplikationen realisiert werden. Hier werden wir uns 2D-Transformationen ansehen.

Die Transportgleichungen werden in Form einer Transformationsmatrix homogener Koordinaten wie folgt geschrieben:

P' = P × T(dx, dy),

.

Manchmal werden solche Ausdrücke wie folgt geschrieben:

Betrachten Sie zum Beispiel die Doppelpunktübersetzung. Es sei notwendig, den Punkt P in einem Abstand (dx1, dy1) zum Punkt P‘ und dann in einem Abstand (dx2, dу2) zu P'' zu bewegen. Die Gesamtübertragung muss gleich der Distanz (dх1+d2, dу1+dу2) sein. Schreiben wir die Daten in das Formular

P’ = P × T (dx1, dy1);

P'' = P' × T (dx2, dy2).

Wenn wir die erste Formel in die zweite einsetzen, erhalten wir

P'' = P × (T (dx1, dy1) × T (dx2, dy2)).

Das Matrixprodukt T (dx1, dy1) ∙ T (dx2, dy2) ist

Somit ist die resultierende Übertragung (dx1+dx2, dy1+dy2), d. h. Aufeinanderfolgende Überträge sind additiv.

Die Skalierungsgleichungen in Matrixform unter Verwendung homogener Koordinaten werden geschrieben als

,

.

P’ = P’ × S(Sx, Sy).

Das Matrixprodukt S(Sx1, Sy1) × S(Sx2, Sy2) ist

Somit sind aufeinanderfolgende Skalierungen multiplikativ.

Schließlich kann die Rotationsgleichung (in einem rechtshändigen System) dargestellt werden als:

.

Aufeinanderfolgende Rotationen sind additiv.

Zusammensetzung von 2D-Transformationen unter Verwendung homogener Koordinaten. Das Matrixprodukt wird in verschiedenen Fällen aufgerufen Vereinigung, Verbindung, Verkettung Und Komposition. Wir verwenden den letzten der aufgeführten Begriffe.

Betrachten Sie zum Beispiel die Drehung eines Objekts relativ zu einem beliebigen Punkt P1. Da wir nur wissen, wie man sich um den Ursprung dreht, teilen wir das ursprüngliche Problem in drei Teilprobleme auf:

Translation, bei der Punkt P1 zum Ursprung verschoben wird;

Drehen;

Eine Verschiebung, bei der ein Punkt vom Ursprung an seine ursprüngliche Position P1 zurückgeführt wird.

Die Reihenfolge dieser Transformationen ist in Abb. dargestellt. 7.1.

Reis. 7.1. Drehen Sie ein Objekt um einen beliebigen Punkt

Die resultierende Transformation sieht so aus

Mit einem ähnlichen Ansatz können Sie ein Objekt relativ zu einem beliebigen Punkt P1 skalieren: Bewegen Sie P1 zum Ursprung, skalieren Sie es und verschieben Sie es zurück zum Punkt P1. Die resultierende Transformation wird in diesem Fall so aussehen

Betrachten wir eine komplexere Transformation. Nehmen wir an, wir müssen ein Objekt skalieren, drehen und an der gewünschten Stelle (dem Haus in Abb. 7.2) positionieren, wobei der Mittelpunkt der Drehung und Skalierung Punkt P1 ist.

Reis. 7.2. Beispiel für eine Konvertierungssequenz

Die Transformationssequenz besteht darin, den Punkt P1 zum Ursprung zu verschieben, zu skalieren und zu drehen und dann vom Ursprung zum zu übertragen neue Position P2. Die Datenstruktur des Anwendungsprogramms, die diese Transformation enthält, kann den/die Skalierungsfaktor(en), den Drehwinkel und die Übersetzungsbeträge enthalten, oder die resultierende Transformationsmatrix kann wie folgt geschrieben werden:

T (-x1, -y1) × S (Sx, Sy) × R (A) × T (x2, y2).

Im Allgemeinen ist die Matrixmultiplikation nicht kommutativ. Wenn M1 und M2 eine elementare Translation, Skalierung oder Rotation darstellen, gilt Kommutativität in den folgenden Sonderfällen:

M1 M2
Skalierung verschieben Skalierung drehen (bei Sx=Sy) Übersetzen, Zoomen, Drehen, Drehen

Die Zusammensetzung ist am meisten Gesamtansicht, bestehend aus den Operationen R, S und T, hat eine Matrix

Sein oberer 2 × 2-Teil ist die kombinierte Rotations- und Skalierungsmatrix, während tx und ty die Nettotranslation beschreiben. Um P∙M als Produkt eines Vektors und einer 3 × 3-Matrix zu berechnen, sind 9 Multiplikationsoperationen und 6 Additionsoperationen erforderlich. Die Struktur der letzten Spalte der verallgemeinerten Matrix ermöglicht es uns, die tatsächlich durchgeführten Aktionen zu vereinfachen.

Koordinatentransformationsproblem ist wie folgt: Kenntnis der Koordinaten des neuen Ursprungs und der neuen Koordinatenvektoren im alten System:

, , , (3)

Express-Koordinaten x,y Punkte M im alten Koordinatensystem durch Koordinaten Dieser Punkt im neuen System.

Aus den Formeln (3) folgt das

; ; . (4)

(nach der Dreiecksregel).

Als , , dann durch Definition der Koordinaten des Punktes , , d.h. ; .

Dann erhalten wir unter Verwendung der Formeln (4):

wo wir finden:

(5)
;

So werden die Koordinaten ausgedrückt x,y beliebiger Punkt M im alten System durch seine Koordinaten im neuen System .

Formeln (5) werden aufgerufen Formeln zur Transformation eines affinen Koordinatensystems.

Koeffizienten bei - Koordinaten des neuen Vektors im alten System; Koeffizienten sind die Koordinaten des neuen Vektors im alten System, freie Terme sind die Koordinaten des neuen Ursprungs im alten System:

Punktkoordinaten M

im neuen System

X
bei
=
=
+
+
+
+

Tisch heißt Übergangsmatrix von Basis , zu Basis , .

Sonderfälle der affinen Transformation

Koordinatensystem

1. Übertragung des Anfangs.

Mit dieser Transformation , , A (Abb. 40).

Finden wir die Koordinaten der Vektoren im alten System, d.h. , , Und :

Þ Þ , ;

Þ Þ , .

Dann nehmen die Formeln (5) die Form an:

UM"
Reis. 40
(7)

Formeln (7) werden aufgerufen Formeln zum Ersetzen von Koordinatenvektoren.

Das Konzept eines Richtungswinkels zwischen Vektoren.

Konvertieren eines rechteckigen Koordinatensystems

Das Konzept eines Richtungswinkels zwischen Vektoren wird auf einer orientierten Ebene eingeführt.

Seien und seien Vektoren ungleich Null, die in einer bestimmten Reihenfolge angegeben sind ( - der erste Vektor, - der zweite Vektor).

Wenn || , Das Richtungswinkel zwischen Vektor und Vektor angerufen

Größe , wenn Basis , - richtig;

Größe , wenn die Basis übrig bleibt.

Wenn , Das Richtungswinkel zwischen ihnen gilt als gleich, wenn , dann (Abb. 42).


Betrachten Sie zwei rechteckige kartesische Koordinatensysteme und . Lassen M(x;y) V, V . Da ein rechtwinkliges Koordinatensystem ein Sonderfall eines affinen Koordinatensystems ist, können wir die Formeln (5) aus §12 verwenden, aber die Koeffizienten , , , kann nicht länger willkürlich sein.

Finden wir die Koordinaten der Vektoren im alten System. Betrachten wir zwei Fälle.

1) Die Basen , und , sind identisch ausgerichtet (Abb. 43).

Eine 1
A
IN
IN 1
UM"
Reis. 44
A
A

Rechtwinklige Dreiecke Und gleich in Hypotenuse und spitzem Winkel (
, ), somit, Und .

Aus wir finden:

Somit, .

Somit, . Dann nehmen die Formeln (5) die Form an:

Beachten Sie, dass die Determinante der Übergangsmatrix von Basis zu Basis

.

2) Die Basen , und , sind entgegengesetzt ausgerichtet (Abb. 45).

UM
UM"
Reis. 45

UM
UM"
IN
IN 1
A
Eine 1
A
Reis. 46
Lassen . Bringen wir die Vektoren auf einen gemeinsamen Ursprung UM(Abb. 46).

Wenn wir ähnlich wie in Fall 1 argumentieren, erhalten wir:

Somit, ; .

Dann nehmen die Formeln (5) die Form an:

Beachten Sie, dass in diesem Fall die Determinante der Übergangsmatrix von basis zu basis ist

Die Formeln (8) und (9) können kombiniert werden:

, Wo

.

Sonderfälle der Transformation

Rechteckiges Koordinatensystem

1. Übertragung des Anfangs: , .

Polar Koordinaten

Wenn eine Regel angegeben wird, nach der die Lage von Punkten auf einer Ebene anhand geordneter Paare reeller Zahlen bestimmt werden kann, spricht man von der Angabe eines Koordinatensystems auf der Ebene. Zusätzlich zum affinen Koordinatensystem, das in §10 besprochen wurde, wird in der Mathematik häufig ein Polarkoordinatensystem auf einer Ebene verwendet.

Das Polarkoordinatensystem wird auf einer orientierten Ebene eingeführt.

Paar bestehend aus einem Punkt UM und Einheitsvektor heißt Polarkoordinatensystem und wird mit oder bezeichnet . Richtungsgerade angerufen Polarachse, Punkt UM- Pole(Abb. 48).

Auf diese Weise, . Wenn M fällt zusammen mit UM, Das . Für jeden Punkt M sein Polarradius

Wenn M fällt mit dem Pol zusammen UM, dann ist j undefiniert. Aus der Definition des Richtungswinkels zwischen Vektoren (siehe §13) folgt, dass der Polarwinkel

R
Reis. 51
M
J
M 1

Lassen Sie uns Formeln für den Übergang von Polarkoordinaten zu rechtwinkligen kartesischen Koordinaten und umgekehrt ableiten.

Sei ein Polarkoordinatensystem auf einer orientierten Ebene, , V. Fügen wir dem Polarsystem einen Einheitsvektor hinzu, der orthogonal zum Vektor ist, sodass die Basis rechtshändig ist (Abb. 51).

, .

Lassen M(x;y) V. Dann ; (Abb. 51).

Bekommen Formeln für den Übergang von Polar- zu Rechteckkoordinaten:

Lassen Sie uns beide Seiten dieser Gleichungen quadrieren und hinzufügen:

, Wo (Die Wurzel wird mit einem „+“-Zeichen genommen, weil ). Þ Þ
;
.

A
UM
V
Reis. 52
Kommentar . Bei der Lösung von Problemen beim Übergang von rechtwinkligen kartesischen Koordinaten zu Polarkoordinaten reicht es nicht aus, nur zu finden oder nur , Weil Es ist unmöglich, den Polarwinkel aus einer trigonometrischen Funktion eindeutig zu bestimmen: im Intervall Es gibt zwei Winkel mit demselben Kosinus (zwei Winkel mit demselben Sinus) (Abb. 52). Daher können Sie den Polarwinkel j nur dann korrekt ermitteln, wenn Sie gleichzeitig berechnen Und .