Применить прямое геометрическое преобразование
Создайте affine2d
объект, который определяет преобразование.
theta = 10; tform = affine2d([cosd(theta) -sind(theta) 0; sind(theta) cosd(theta) 0; 0 0 1])
tform = affine2d with properties: T: [3x3 double] Dimensionality: 2
Применить прямое геометрическое преобразование к входу (u
, v
) точка.
[X,Y] = transformPointsForward(tform,5,10)
X = 6.6605 Y = 8.9798
Задайте векторы X и Y пяти точек для преобразования.
x = [10 11 15 2 2]; y = [15 32 34 7 10];
Задайте функции обратного и прямого отображения. Обе функции принимают и возвращают точки в упакованном (x, y) формате.
inversefn = @(c) [c(:,1).^2,sqrt(c(:,2))]; forwardfn = @(c) [sqrt(c(:,1)),c(:,2).^2];
Создайте 2-D объект геометрического преобразования, tform
, который хранит функцию обратного отображения и опциональную функцию прямого отображения.
tform = geometricTransform2d(inversefn,forwardfn)
tform = geometricTransform2d with properties: InverseFcn: @(c)[c(:,1).^2,sqrt(c(:,2))] ForwardFcn: @(c)[sqrt(c(:,1)),c(:,2).^2] Dimensionality: 2
Примените обратное геометрическое преобразование к входу точкам.
[u,v] = transformPointsInverse(tform,x,y)
u = 1×5
100 121 225 4 4
v = 1×5
3.8730 5.6569 5.8310 2.6458 3.1623
Примените прямое геометрическое преобразование к преобразованным точкам u
и v
.
[x,y] = transformPointsForward(tform,u,v)
x = 1×5
10 11 15 2 2
y = 1×5
15.0000 32.0000 34.0000 7.0000 10.0000
Создайте affine3d
объект, который определяет преобразование.
tform = affine3d([3 1 2 0;4 5 8 0;6 2 1 0;0 0 0 1])
tform = affine3d with properties: T: [4×4 double] Dimensionality: 3
Применить прямое преобразование 3-D геометрического преобразования к входу (u
, v
, w
) точка.
[X,Y,Z] = transformPointsForward(tform,2,3,5)
X = 48 Y = 27 Z = 33
Задайте векторы x -, y - и z - координаты пяти точек для преобразования.
x = [3 5 7 9 11]; y = [2 4 6 8 10]; z = [5 9 13 17 21];
Задайте функции обратного и прямого отображения, которые принимают и возвращают точки в упакованном (x, y, z) формате.
inverseFcn = @(c)[c(:,1).^2,c(:,2).^2,c(:,3).^2]; forwardFcn = @(c)[sqrt(c(:,1)),sqrt(c(:,2)),sqrt(c(:,3))];
Создайте 3-D геометрический объект преобразования, tform
, который хранит эти обратные и прямые функции отображения.
tform = geometricTransform3d(inverseFcn,forwardFcn)
tform = geometricTransform3d with properties: InverseFcn: @(c)[c(:,1).^2,c(:,2).^2,c(:,3).^2] ForwardFcn: @(c)[sqrt(c(:,1)),sqrt(c(:,2)),sqrt(c(:,3))] Dimensionality: 3
Примените обратное преобразование этого 3-D геометрического преобразования к входу точкам.
[u,v,w] = transformPointsInverse(tform,x,y,z)
u = 1×5
9 25 49 81 121
v = 1×5
4 16 36 64 100
w = 1×5
25 81 169 289 441
Примените прямое геометрическое преобразование к преобразованным точкам u
, v
, и w
.
[x,y,z] = transformPointsForward(tform,u,v,w)
x = 1×5
3 5 7 9 11
y = 1×5
2 4 6 8 10
z = 1×5
5 9 13 17 21
tform
- Геометрическое преобразованиеГеометрическое преобразование, заданное как объект геометрического преобразования.
Для 2-D геометрических преобразований tform
может быть rigid2d
, affine2d
, projective2d
, или geometricTransform2d
геометрический объект преобразования.
Для 3-D геометрических преобразований tform
может быть affine3d
, rigid3d
, или geometricTransform3d
геометрический объект преобразования.
u
- x -координаты точек, которые будут преобразованыx -координаты точек, которые будут преобразованы, заданные как m -by- n или m -by- n -by- p числовой массив. Количество размерностей u
соответствует размерности tform
.
Типы данных: single
| double
v
- y -координаты точек, которые будут преобразованыy -координаты точек, которые будут преобразованы, заданные как m -by- n или m -by- n -by- p числовой массив. Размер v
должен совпадать с размером u
.
Типы данных: single
| double
w
- z -координаты точек, которые будут преобразованыU
- Координаты точек, подлежащих преобразованиюКоординаты точек, которые будут преобразованы, заданные как l -by - 2 или l -by - 3 числовой массив. Количество столбцов U
соответствует размерности tform
.
В первом столбце перечислены x -cordinate каждой точки для преобразования, а во втором - y -cordinate. Если tform
представляет собой 3-D геометрическое преобразование, U
имеет size l -by - 3, а в третьем столбце перечислены z -cordinate точек для преобразования.
Типы данных: single
| double
x
- x -координаты точек после преобразованияx -координаты точек после преобразования, возвращенные как m -by- n или m -by- n -by- p числовой массив. Количество размерностей x
соответствует размерности tform
.
Типы данных: single
| double
y
- y -координаты точек после преобразованияy -координаты точек после преобразования, возвращенные как m -by- n или m -by- n -by- p числовой массив. Размер y
соответствует размеру x
.
Типы данных: single
| double
z
- z -координаты точек после преобразованияz -координаты точек после преобразования, возвращенные как m -by- n -by- p числовой массив. Размер z
соответствует размеру x
.
Типы данных: single
| double
X
- Координаты точек после преобразованияКоординаты точек после преобразования, возвращенные как числовой массив. Размер X
соответствует размеру U
.
В первом столбце перечислены x -cordinate каждой точки после преобразования, а во втором - y -cordinate. Если tform
представляет собой 3-D геометрическое преобразование, в третьем столбце перечислены z-координаты точек после преобразования.
Типы данных: single
| double
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.