아핀 좌표계의 변환. 인형을 위한 좌표 공간 변환 아핀 좌표 변환

영어: Wikipedia는 사이트를 보다 안전하게 만들고 있습니다. 미래에 Wikipedia에 연결할 수 없는 오래된 웹 브라우저를 사용하고 있습니다. 장치를 업데이트하거나 IT 관리자에게 문의하십시오.

中文: 维基 维基 正 百科 使 使 网站 更加 安全 您 您 正 正 在 使用 旧 旧 的 的 的 的 的 的 的 的 的 将来 将来 将来 无法 连接 维基 百科。。 更新 您 的 的 设备 设备 或 或 您 的 的 管理员 管理员。 提供 长 长 具 技术性 的 的 更新 仅 英语 英语 英语 英语 英语 英语 英语 英语 英语 英语 英语 英语 英语 英语 英语 英语 英语 英语 英语 具 具 提供 提供안녕하세요)。

스페인어: Wikipedia está haciendo el sitio más seguro. 미래에 사용할 Wikipedia를 사용하여 웹을 사용할 수 있습니다. 현재 관리자에게 정보를 제공할 수 있는 정보를 제공합니다. Más abajo hay una realizacion más larga y más técnica en inglés.

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

프랑세즈: Wikipedia va bientô Augmenter la securité de son site. Vous utilisez actuellement un Navigateur web ancien, qui ne pourra plus se connecter à Wikipedia lorsque ce sera fait. Merci de mettre à jour votre appareil ou de contacter votre administrateur informatique à cette fin. Des information Supplementaires plus 기술 et en anglais sont disponibles ci-dessous.

日本語: ウィキペディア で は サイト の セキュリティ を て い ます。 ご 利用 の は バージョン が 古く 、 今後 、 ウィキペディア 接続 でき なく なる 可能 性 が ます デバイス を する 、 、 管理 管理 者 ご ください。 技術 面 の 更新 更新 更新 更新 更新 更新更新 更新 更新 詳しい 詳しい 詳しい 詳しい HIP情報は以下に韓語で提供してい마스。

독일 사람: Wikipedia erhöht die Sicherheit der Webseite. Du benutzt einen alten Webbrowser, der in Zukunft nicht mehr auf Wikipedia zugreifen können wird. IT 관리자에 대한 정보 제공 a. Ausführlichere (und technisch detailliertere) Hinweise findest Du unten in englischer Sprache.

이탈리아노: Wikipedia sta rendendo il sito più sicuro. 미래의 Wikipedia에서 Wikipedia에서 웹 브라우저를 사용하지 마십시오. 선호하는 정보에 따라 정보 제공에 대한 정보가 제공됩니다. Più in Basso è disponibile un aggiornamento più dettagliato e tecnico inglese.

마자르 사람: Wikipedia의 Biztonságosabb lesz. A böngésző, amit használsz, nem lesz képes kapcsolódni a jövőben. Használj modernebb szoftvert vagy jelezd a problemát a rendszergazdádnak. Alább olvashatod a reszletesebb magyarázatot(앙골룰).

스웨덴: Wikipedia gör sidan mer säker. Du använder en äldre webbläsare som inte kommer att kunna läsa Wikipedia i framtiden. IT 관리자에 대한 정보 업데이트. Det finns en längre och mer teknisk förklaring på engelska längre ned.

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

귀하의 브라우저 소프트웨어가 당사 사이트에 연결하는 데 의존하는 안전하지 않은 TLS 프로토콜 버전, 특히 TLSv1.0 및 TLSv1.1에 대한 지원을 제거합니다. 이것은 일반적으로 오래된 브라우저나 오래된 Android 스마트폰으로 인해 발생합니다. 또는 실제로 연결 보안을 저하시키는 회사 또는 개인 "웹 보안" 소프트웨어의 간섭일 수 있습니다.

당사 사이트에 액세스하려면 웹 브라우저를 업그레이드하거나 이 문제를 해결해야 합니다. 이 메시지는 2020년 1월 1일까지 유지됩니다. 이 날짜 이후에는 브라우저에서 당사 서버에 연결할 수 없습니다.

먼저 변환이 무엇인지 정의해 보겠습니다. 모델이 있다고 가정해 봅시다(간단히 하기 위해 삼각형으로 둡니다). 그리고 3개의 좌표 공간: 객체(이 삼각형이 설명됨), 세계 및 카메라 공간. 따라서 변환은 다른 좌표계(처음에는 세계 좌표계, 다음에는 카메라 좌표계)의 좌표를 사용하여 한 좌표계(목표)에 있는 객체의 좌표를 표현하는 것입니다.

이전에 썼듯이 다른 좌표 공간을 사용하면 가상 세계를 더 쉽게 만들 수 있습니다. 객체는 객체 공간에서 생성되며 각 객체는 고유한 좌표 공간을 갖습니다. 세계 공간은 가상 세계의 모든 개체를 연결하고 매우 어려운 작업(예: 움직이는 개체)을 수행할 수 있도록 합니다. 장면이 생성되고 모든 객체가 이동된 후 월드 좌표는 카메라의 좌표 공간으로 변환됩니다. 우리는 하나의 카메라만 사용할 것이지만 실제 상황에서는 여러 개를 만들 수 있습니다. 예를 들어, 여러 대의 카메라가 멋진 게임 Earth 2150: Escape from the blue Planet에서 사용되었습니다.

그래서 내가 말하는 것은: 여러 좌표 공간을 사용하려면 변환이 필요합니다.

먼저 벡터에 대해 기억합시다. 다음 그림이 도움이 될 것입니다.

여기서 우리는 무엇을 보는가: 좌표의 세계 공간 축에 의해 형성 x, y, z. 단위 벡터 , 제이, 케이세계 좌표 공간의 orts 또는 기저 벡터라고 합니다. 이 벡터의 합을 사용하여 세계 좌표 공간의 모든 벡터를 얻을 수 있습니다.

V는 세계 좌표의 원점과 객체 좌표의 원점을 연결하는 벡터입니다. 벡터의 길이 v는 세계 좌표의 원점과 객체 좌표의 원점 사이의 거리와 같습니다. 벡터 형식 고려 V=(5,2,5):

V=x* +y* 제이+z* 케이 = 5* + 2*제이 + 5*케이

위에서 썼듯이 기저 벡터의 도움으로 주어진 공간의 모든 점(벡터)을 나타낼 수 있으며 이 방정식이 보여줍니다.

벡터 ,,아르 자형객체 공간의 기저 벡터입니다. 그것을주의해라 ,제이,케이반드시 같지는 않다 ,,아르 자형.

이 그림에서 나는 많은 세부 사항을 생략했습니다. 삼각형을 형성하는 객체 좌표 공간에 세 개의 점이 있습니다. 또한 삼각형을 가리키는 카메라에 레이블을 지정하지 않았습니다.

행렬을 사용한 선형 좌표 변환

먼저 단위 벡터를 살펴보겠습니다. ,제이,케이, 세계 공간의 좌표축과 방향이 일치하고 세계 공간의 오르트 또는 기저 벡터라고합니다.

이러한 벡터를 좌표 형식으로 행렬로 작성합니다.

= [ i x i y i z ] = [ 1 0 0 ] 제이= [ j x j y j z ] = [ 0 1 0 ] 케이= [ k x k y k z ] = [ 0 0 0 ]

여기서 벡터는 1x3 행렬(행 행렬)로 표시됩니다.

단일 행렬을 사용하여 이러한 기저 벡터를 작성할 수 있습니다.

그리고 더 중요한 것은 이러한 벡터를 다음과 같이 작성할 수 있다는 것입니다.

보시다시피 결과는 3x3 또는 4x4 단위 행렬입니다.

그런게 있을 것 같죠? 한 행렬에 공간의 어리석은 기저 벡터를 기록하는 것이 가능하다고 생각하십시오. 하지만 "생각"하지 마세요!!! 여기에 3차원 프로그래밍의 가장 끔찍한 비밀 중 하나가 숨겨져 있습니다.

위에서 썼듯이 가상 세계에 존재하는 모든 점은 벡터 형식으로 작성할 수 있습니다.

V=x* +y* 제이+z* 케이

어디에 V- 공간의 점, x,y,z - 점 좌표 V, ㅏ ,제이,케이- 공간의 기본 벡터. 여기에서는 한 점에 대해 이야기하고 있지만 벡터를 고려하고 있습니다. 벡터와 점은 본질적으로 같은 것임을 기억하시기 바랍니다.

위의 공식을 벡터의 벡터 형태라고 합니다. 벡터의 선형 조합이라는 또 다른 이름이 있습니다. 그건 그렇고.

이제 벡터를 다시 살펴보겠습니다. V. 행 행렬에 작성해 보겠습니다. V = [ 5 2 5 ]

벡터의 길이에 유의하십시오. V세계 좌표 공간의 시작에서 객체 좌표 공간의 시작까지의 거리입니다.

이 벡터에 세계 공간의 기본 벡터가 쓰여진 행렬을 곱해 보겠습니다(행렬 곱셈 공식을 기억하시기 바랍니다).

결과적으로 다음 방정식을 얻습니다.

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

벡터가 있습니다. 저것들. 벡터에 행렬을 곱한 결과는 벡터입니다. 이 경우 벡터는 변경되지 않았습니다. 그러나 행렬의 요소가 1(주대각선)과 0(다른 모든 요소)이 아니라 다른 숫자인 경우 벡터가 변경됩니다. 따라서 행렬 M이 좌표 공간의 변환을 수행한다고 말할 수 있습니다. 일반 공식을 고려하십시오.

a, b - 벡터, M - 좌표 공간의 변환 행렬. 공식은 다음과 같이 읽을 수 있습니다. "행렬 M은 점을 점 b로 변환합니다."

명확성을 위해 예를 살펴보겠습니다. 좌표를 객체 공간(p,q)에서 월드 공간(i,j)으로 변환해야 합니다.

,제이- 세계 공간의 기본 벡터, ,객체 공간의 기저 벡터입니다. 그림에서 객체 좌표 공간이 z축을 중심으로 -45도 회전된 것을 볼 수 있습니다(그림에서는 보이지 않음). 또한, 벡터 , 1.5배 더 많은 벡터 ,제이즉, 객체 공간에 정의된 객체는 월드 공간에서 1.5배 작게 보입니다.

객체 공간 모델이 변환 후 어떻게 보일지 시각화하기 위해 벡터에 대한 프레임을 그릴 수 있습니다. ,제이:

같은 프레임을 그릴 수 있습니다. ,,하지만 나는 그림을 어지럽히지 않았습니다.

이제 객체 공간에 삼각형이 그려져 있다고 가정해 보겠습니다(그림 a). 세계 공간에서 이 삼각형은 45도 회전하고 1/3만큼 줄어듭니다(그림 b).

이제 모자이크의 모든 요소를 ​​수집해 보겠습니다. 아시다시피 변환은 행렬을 사용하여 수행할 수 있습니다. 행렬의 행은 기저 벡터입니다. 객체 공간에서 세계 좌표 공간의 기저 벡터의 좌표는 다음과 같습니다.

= [ 0.473 0.473 ] 제이 = [ -0.473 0.473 ]

좌표를 어떻게 알 수 있습니까? 먼저 좌표 공간이 서로에 대해 45도 회전한다는 것을 알고 있습니다. 둘째, 객체 공간 기저 벡터는 세계 공간 기저 벡터의 1.5배입니다. 이것을 알면 벡터의 좌표를 쉽게 계산할 수 있습니다. ,제이.

결과적으로 다음과 같은 변환 행렬(이 경우 회전 또는 회전)을 얻습니다.

또는 3D 공간에서:

모든 값은 대략적인 값입니다.

이것은 물체 공간에서 관성 공간으로의 좌표 변환 행렬입니다(관성 공간의 기본 벡터가 세계 공간의 기본 벡터와 일치함을 상기시킵니다). 삼각형을 객체 공간에서 관성 공간으로 변환하려면 삼각형의 모든 점(벡터)에 변환 행렬을 곱해야 합니다.

마지막 예에서 회전과 크기 조정이라는 두 가지 변환이 발생했습니다. 이러한 변환은 모두 선형입니다.

이제 선형 변환의 예를 살펴보았으므로 다음 정의를 알 수 있습니다.

선형 변환은 공간을 왜곡하지 않는 좌표 변환입니다. 저것들. 모든 평행선은 평행을 유지합니다(한 가지 예외가 있음). 또는 아주 간단하게: 선형 변환을 사용하면 삼각형이 원이나 사각형으로 바뀌지 않고 항상 삼각형으로 유지됩니다.

이제 선형 변환이 무엇인지 대략적으로 이해했으므로 특정 공식을 살펴보겠습니다.

규모

k 1 ,k 2 ,k 3 - 스케일링 계수. k 1이면 개체가 증가합니다.

회전 또는 회전(Rotation)

x축을 중심으로 회전:

y축을 중심으로 한 회전:

z축을 중심으로 한 회전:

그건 그렇고, 우리가 위에서 사용한 것은 이 행렬(z축을 중심으로 한 회전)입니다.

회전은 좌표 공간을 형성하는 축 주위뿐만 아니라 임의의 선 주위도 가능합니다. 임의의 직선을 회전하는 공식은 매우 복잡하므로 아직 고려할 준비가 되지 않았습니다.

위에서 기억해야 할 가장 중요한 것은 변환 행렬의 행이 이전 좌표 공간의 좌표로 표현되는 새 좌표 공간의 기본 벡터를 포함한다는 것입니다. .

이 간단한 것(새 공간의 기저 벡터가 행렬에 기록됨)을 이해하고 변환 행렬을 보면 새 좌표 공간을 쉽게 볼 수 있습니다.

그리고 마지막:
선형 변환은 개체를 이동할 수 없습니다. 저것들. 개체를 확대/축소할 수 있고 회전할 수 있지만 고정된 상태로 유지됩니다.

아핀 변환

아핀 변환은 변환이 있는 선형 변환입니다. 아핀 변환의 도움으로 개체를 이동할 수 있습니다.

공식은 매우 간단합니다.

A = bM + v;

여기서 b는 원래 점, M은 선형 변환 행렬, a는 변환 점, v는 두 공간을 연결하는 벡터입니다. 즉, 길이가 두 좌표 공간 사이의 거리와 같은 벡터입니다.

수업 시작 부분의 그림에서 필요한 것은 정확히 아핀 변환입니다. 먼저 객체 공간에서 관성 변환으로 선형 변환한 다음 벡터를 사용하여 객체 공간의 모든 점을 월드 공간으로 전송합니다. V.

3D 그래픽 프로그래밍에서 계산을 단순화하기 위해 4차원 벡터, 4x4 행렬 및 소위 동차 좌표가 사용됩니다. 네 번째 차원은 어떤 역할도 하지 않으며 계산을 단순화하기 위해 도입되었습니다.

4D 벡터에는 x, y, z 및 w의 네 가지 구성 요소가 있습니다. 벡터의 네 번째 구성 요소를 동차 좌표라고 합니다.

균질한 좌표를 기하학적으로 표현하는 것은 매우 어렵습니다. 따라서 좌표(x, y, w)가 있는 3차원 균질 공간을 고려합니다. 2차원 평면이 점 w=1에서 정의된다고 상상해 보십시오. 따라서, 2차원 점은 다음과 같은 좌표(x,y,1)로 균일한 공간에서 표현된다. 평면에 있지 않은 공간의 모든 점(w != 1인 평면에 있음)은 2차원 평면에 투영하여 계산할 수 있습니다. 이렇게 하려면 이 지점의 모든 구성 요소를 균질한 구성 요소로 나누어야 합니다. 저것들. w!=1인 경우 "물리적"(우리가 작업하고 w=1인 경우) 평면에서 점의 좌표는 (x/w,y/w,w/w) 또는 (x/w)입니다. ,y/w,하나). 사진을 봐:

벡터 좌표는 다음과 같습니다.

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

이러한 벡터는 다음과 같이 "물리적" 평면(w=1)에 투영됩니다.

V 1 = [ 1 1 1 ] v 3 = [ -1.5 1 1 ]

그림은 3개의 벡터를 보여줍니다. 점이 w=0 평면에 있을 때 이 점은 물리적 평면(벡터 v 2)으로 투영될 수 없습니다.

물리적 평면의 각 점에 대해 균질한 공간에는 무한한 수의 점이 있습니다.

4차원 공간에서는 모든 것이 정확히 동일합니다. 우리는 w = 1: (x, y, z, 1)인 물리적 공간에서 작업합니다. 계산 결과 w != 1이면 점의 모든 좌표를 동질 좌표로 나누어야 합니다. (x/w,y/w,z/w,w/w) 또는 (x/w, y/w,z/w,1 ). w = 0일 때 또 다른 특별한 경우가 있습니다. 나중에 고려하겠습니다.

이제 연습으로 넘어 갑시다. 도대체 왜 균질 좌표가 필요합니까?

우리가 이미 알아냈듯이 3x3 행렬은 선형 변환을 나타냅니다. 이전(재배치)을 포함하지 않습니다. 별도의 벡터가 전송에 사용됩니다(이것은 이미 아핀 변환입니다).

V = 오전 + b

저것들. 물체의 모든 점(벡터)에 변환 행렬 M을 곱하여 관성 좌표계(기저 벡터가 세계 좌표계의 기저 벡터와 동일함)로 이동한 다음 다음을 사용하여 세계 공간에 도달합니다. 벡터 나. 다시 말해, 벡터 b는 객체 공간의 시작과 세계 공간의 시작을 연결합니다.

따라서 4차원을 사용하여 선형 변환(회전, 크기 조정)과 변환을 모두 하나의 행렬에 넣을 수 있습니다.

네 번째 구성 요소가 항상 1과 같다고 상상해 보십시오(이미 그렇지 않다는 것을 알아냈음에도 불구하고). 이제 선형 변환은 4x4 행렬을 사용하여 나타낼 수 있습니다.

4차원 공간에서 벡터에 변환 행렬을 곱하는 공식을 살펴보겠습니다.

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) 보시다시피 4x4 행렬을 사용하여 변환된 벡터의 성분은 3x3 행렬을 사용하여 변환된 벡터의 성분과 같습니다. 네 번째 구성 요소는 동의한 대로 항상 1과 같으므로 간단히 버릴 수 있습니다. 따라서 3x3 및 3x4 행렬에 의해 수행되는 변환은 동일하다고 말할 수 있습니다.

이제 전송 매트릭스를 살펴보겠습니다.

객체 공간의 벡터(강의 시작 부분에 있는 그림 참조)에 이 행렬을 곱하면 이 벡터를 세계 좌표 공간에서 표현할 수 있습니다(이는 객체와 세계 공간 기본 벡터가 동일한 경우).

이것은 4D 공간에서만 선형 변환입니다.

행렬 곱을 사용하여 회전 행렬과 변환 행렬을 결합할 수 있습니다.

이 마지막 행렬은 처음부터 정확히 우리가 필요로 했던 것입니다. 모든 요소가 정확히 무엇을 의미하는지 잘 이해하고 있어야 합니다(4번째 열 제외).

동차 좌표에서 점은 모든 축척 계수와 같이 기록됩니다. 또한 한 점이 동차 좌표로 표시되는 경우 2차원 데카르트 좌표는 및 로 찾을 수 있습니다.

동차좌표의 기하학적 의미는 다음과 같다(Fig. 6). 선상의 임의의 점

쌀. 6. 동차 좌표의 기하학적 해석

따라서 좌표(x, y)가 있는 생산 지점과 W≠0 형식의 숫자의 세 집합 사이에 일대일 대응이 설정됩니다. 숫자 W×x, W×y, W를 이 점의 새로운 좌표로 간주합니다. 따라서, 균질 좌표는 3차원 공간에서 z = W(여기서 z = 1) 평면에 계수 W로 스케일된 2차원 평면의 임베딩으로 나타낼 수 있습니다.

균질 좌표를 사용하면 가장 간단한 문제도 해결할 수 있습니다.

디스플레이 장치가 정수로만 작동하는 경우(또는 정수로만 작업해야 하는 경우) 임의의 W 값(예: W=1)에 대해 동종 좌표(0.5, 0.1, 2.5)를 가진 점은 대표된다. 그러나 W를 합리적으로 선택하면 이 점의 좌표가 정수임을 확인할 수 있습니다. 특히, 고려된 예의 경우 W=10에서 (5; 1; 25)가 있습니다.

또 다른 경우입니다. 변환 결과가 산술 오버플로로 이어지지 않도록 좌표(80000; 40000; 1000)가 있는 점의 경우 예를 들어 W=0.001을 사용할 수 있습니다. 결과적으로 우리는 (80; 40; 1)을 얻습니다.

그러나 균질 좌표의 주요 응용 프로그램은 균질 좌표와 3차 행렬의 트리플을 사용하여 평면의 모든 아핀 변환을 설명할 수 있기 때문에 기하학적 변환입니다. 유사하게, 4차 균질 좌표와 4차 행렬의 도움으로 3차원 공간의 모든 변형을 설명할 수 있습니다.

알려진 바와 같이 행렬 형태의 변환, 크기 조정 및 회전 변환은 다음과 같이 작성됩니다.

P' = P × S;

변환은 크기 조정 및 회전(곱셈 사용)과 별도로(덧셈 사용) 구현됩니다. 점이 동차 좌표로 표현되면 곱셈을 사용하여 세 가지 변환을 모두 구현할 수 있습니다. 여기서는 2차원 변환을 고려할 것입니다.

전송 방정식은 다음과 같이 동종 좌표의 변환 행렬 형태로 작성됩니다.

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

.

때때로 그러한 표현은 다음과 같이 작성됩니다.

예를 들어 이중 점 이동을 고려하십시오. 점 P를 점 P'로 거리(dx1, dy1)로 이동한 다음 P''로 거리(dx2, dy2)로 이동해야 합니다. 총 전송량은 거리(dх1+d2, dу1+dу2)와 같아야 합니다. 우리는 형식으로 데이터를 씁니다.

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

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

첫 번째 공식을 두 번째 공식에 대입하면 다음을 얻습니다.

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

행렬 곱 T(dx1, dy1) ∙ T(dx2, dy2)는 다음과 같습니다.

따라서 결과 전송은 (dx1+dx2, dy1+dy2), 즉 연속 캐리는 가산적입니다.

균일 좌표를 사용하는 행렬 형태의 스케일링 방정식은 다음과 같이 작성됩니다.

,

.

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

행렬 곱 S(Sx1, Sy1) × S(Sx2, Sy2)는

따라서 연속적인 스케일링은 곱셈입니다.

마지막으로, 회전 방정식(오른손 시스템에서)은 다음과 같이 나타낼 수 있습니다.

.

연속 회전은 추가됩니다.

동차 좌표를 사용한 2D 변환 구성. 다른 경우의 행렬 곱은 연결, 결합, 연결그리고 구성. 우리는 이 용어의 마지막을 사용할 것입니다.

예를 들어 임의의 점 P1에 대한 물체의 회전을 고려하십시오. 원점을 중심으로 회전하는 방법만 알고 있으므로 원래 문제를 세 개의 하위 작업으로 나눕니다.

점 P1이 원점으로 이동하는 변환,

회전하다;

원점의 점이 원래 위치 P1으로 돌아가는 변환입니다.

이러한 변환의 순서는 그림 1에 나와 있습니다. 7.1.

쌀. 7.1. 임의의 점을 중심으로 개체 회전

결과 변환은 다음과 같은 형식을 갖습니다.

유사한 접근 방식을 사용하여 임의의 점 P1을 기준으로 개체의 크기를 조정할 수 있습니다. P1을 원점으로 이동하고 크기를 조정한 다음 다시 점 P1으로 이동합니다. 이 경우 결과 변환은 다음과 같습니다.

좀 더 복잡한 변환을 고려해 보겠습니다. 회전 및 크기 조정의 중심이 점 P1인 올바른 위치(그림 7.2의 집)에 개체의 크기를 조정하고 회전하고 위치를 지정해야 한다고 가정해 보겠습니다.

쌀. 7.2. 변환 시퀀스 예

변환 순서는 점 P1을 원점으로 이동하고 크기를 조정하고 회전한 다음 원점에서 원점으로 이동하는 것으로 구성됩니다. 새로운 위치 P2. 이 변환을 포함하는 응용 프로그램의 데이터 구조에는 축척 계수, 회전 각도 및 변환 양이 포함될 수 있으며 결과 변환 행렬은 다음과 같이 작성될 수 있습니다.

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

일반적으로 행렬 곱셈은 비가환적입니다. M1 및 M2가 기본 변환, 크기 조정 또는 회전인 경우 교환성은 다음과 같은 특수한 경우에 발생합니다.

M1 M2
변환 스케일 회전 스케일(Sx=Sy일 때) 이동 스케일 회전 회전

구성 대부분 일반보기, 연산 R, S, T로 구성된 행렬은

2×2 상단은 결합된 회전 및 스케일링 행렬이고 tx 및 ty는 전체 변환을 나타냅니다. 벡터와 3 × 3 행렬의 곱으로 P∙M을 계산하려면 9개의 곱셈과 6개의 덧셈이 필요합니다. 일반화 행렬의 마지막 열의 구조는 실제로 수행되는 작업을 단순화할 수 있습니다.

좌표 변환 문제이전 시스템에서 새 시작 좌표와 새 좌표 벡터를 아는 것으로 구성됩니다.

, , , (3)

표현 좌표 x,y포인트들 이전 좌표계에서 좌표를 통해 새로운 시스템의 이 지점.

식 (3)으로부터 다음과 같이 된다.

; ; . (4)

(삼각형 법칙에 따라).

왜냐하면 , , 다음 점 좌표의 정의에 의해 , , 즉. ; .

그런 다음 공식 (4)를 사용하여 다음을 얻습니다.

우리가 찾은 곳:

(5)
;

좌표는 이렇게 표현됩니다. x,y임의의 점 좌표를 통해 이전 시스템에서 새로운 시스템에서 .

공식 (5)는 아핀 좌표계 변환 공식.

계수, 이전 시스템에서 새 벡터의 좌표. 계수 , at - 이전 시스템의 새 벡터 좌표, 자유 멤버 , - 이전 시스템의 새 시작 좌표:

점 좌표

새로운 시스템에서

엑스
~에
=
=
+
+
+
+

테이블 기저 에서 기저 , 로의 전이 행렬이라고 합니다.

아핀 변환의 특정 사례

좌표계

1. 전송 시작.

이번 변신으로 , , ㅏ (그림 40).

벡터의 좌표와 이전 시스템, 즉 , , 그리고 :

Þ Þ , ;

Þ Þ , .

그러면 공식 (5)는 다음과 같은 형식을 취합니다.

영형"
쌀. 40
(7)

공식 (7)은 좌표 벡터 대체 공식.

벡터 사이의 지향각 개념.

직사각형 좌표계 변환

벡터 사이의 지향각 개념은 지향된 평면에 도입되었습니다.

특정 순서( - 첫 번째 벡터, - 두 번째 벡터)로 주어진 0이 아닌 벡터를 하자.

만약 || , 그 다음에 벡터와 벡터 사이의 방향각~라고 불리는

크기 , 기초인 경우 - 오른쪽;

크기 , 기초인 경우 , 남습니다.

만약 , 그 다음에 지향각그들 사이는 다음과 같은 경우 동등한 것으로 간주됩니다. , 그런 다음(그림 42).


두 개의 직사각형 데카르트 좌표계를 고려하고 . 허락하다 M(x; y)안에 , 안에 . 직교 좌표계는 아핀 좌표계의 특수한 경우이므로 §12의 공식 (5)를 사용할 수 있지만 계수 , , , 더 이상 무작위가 될 수 없습니다.

기존 시스템에서 벡터의 좌표를 찾아봅시다. 두 가지 경우를 생각해 보자.

1) 베이스 , 및 , 의 방향이 동일합니다(그림 43).

1
하지만
1에서
영형"
쌀. 44

직각 삼각형 그리고 빗변과 예각이 같음(
, ), 결과적으로, 그리고 .

에서 우리는 찾는다:

따라서, .

따라서, . 그러면 공식 (5)는 다음과 같은 형식을 취합니다.

기저에서 기저로의 천이 행렬의 행렬식에 유의하십시오.

.

2) 베이스 , , 는 반대 방향입니다(그림 45).

영형
영형"
쌀. 45

영형
영형"
1에서
하지만
1
쌀. 46
허락하다 . 우리는 벡터와 공통 시작점을 가져옵니다. 영형(그림 46).

사례 1)과 유사하게 주장하면 다음을 얻습니다.

따라서, ; .

그러면 공식 (5)는 다음과 같은 형식을 취합니다.

이 경우 기저에서 기저로의 전이 행렬의 행렬식에 유의하십시오.

식 (8)과 (9)는 다음과 같이 결합될 수 있습니다.

, 어디

.

변형의 특별한 경우

직사각형 좌표계

1. 전송 시작: , .

극좌표

실수의 순서 쌍을 사용하여 평면 점의 위치를 ​​​​결정할 수있는 규칙이 지정되면 좌표계가 평면에 주어진다고 말합니다. § 10에서 논의한 아핀 좌표계 외에도 수학에서는 극좌표계가 평면에서 자주 사용됩니다.

극좌표계는 방향이 지정된 평면에 입력됩니다.

점으로 구성된 쌍 영형그리고 단위 벡터는 극좌표계그리고 표시하거나 . 방향 직선 ~라고 불리는 극축, 점 영형- (그림 48).

이런 식으로, . 만약 와 일치하다 영형, 그 다음에 . 어떤 점을 위해 극 반경

만약 극과 일치 영형, j는 정의되지 않습니다. 벡터 사이의 지향각 정의(§13 참조)에서 극각은 다음과 같습니다.

아르 자형
쌀. 51
제이
남 1

극좌표에서 직교 직교 좌표로 또는 그 반대로의 전환 공식을 도출합니다.

방향이 있는 평면의 극좌표계를 이라 하고, , 안에 . 기본이 옳도록 극 시스템에 벡터에 직교하는 단위 벡터를 추가합니다(그림 51).

, .

허락하다 M(x; y)안에 . 그 다음에 ; (그림 51).

갖다 극좌표에서 직교좌표로의 변환 공식:

우리는 이러한 평등의 양쪽을 제곱하고 다음을 추가합니다.

, 어디 (루트는 "+" 기호로 사용됩니다. ). Þ Þ
;
.

영형
안에
쌀. 52
논평 . 직교 직교 좌표에서 극 좌표로의 변환 문제를 해결할 때 또는 만 , 왜냐하면 하나의 삼각 함수에서 극각을 결정하는 것은 분명히 불가능합니다. 동일한 코사인을 갖는 두 개의 각도가 있습니다(동일한 사인을 갖는 두 개의 각도)(그림 52). 따라서 동시에 계산해야 극각 j를 올바르게 찾을 수 있습니다. 그리고 .