I made X, Y coordinates and a triangle with zeros and ones on this plane.
I want to rotate this triangle 45 degrees. I tried rotz(), but I don't have idea to do this.
Thanks in advance.
clc; clear all; close all;
x = linspace(-10,10,49);
y = linspace(-10,10,44);
[X,Y] = meshgrid(x,-y);
Z = zeros(44,49);
Z = importdata('triangle_rotate.txt');
imagesc(Z)

 채택된 답변

Chunru
Chunru 2021년 11월 15일

0 개 추천

clc; clear all; close all;
x = linspace(-10,10,49);
y = linspace(-10,10,44);
[X,Y] = meshgrid(x,-y);
Z = zeros(44,49);
Z = importdata('triangle_rotate.txt');
subplot(121); imagesc(Z); axis equal
Z1 = imrotate(Z, 45);
subplot(122); imagesc(Z1); axis equal

댓글 수: 6

태신 김
태신 김 2021년 11월 15일
편집: 태신 김 2021년 11월 15일
Thank you for your simple answer.
However, the matrix size or image size is changed according to the rotation angle.
Are there other methods to rotate it without changing size of matrix?
Thanks.
Chunru
Chunru 2021년 11월 16일
You can either crop the image or resize the image (which may change the object size).
태신 김
태신 김 2021년 11월 16일
I mean I want to rotate the data without change of dimension and size.
Chunru
Chunru 2021년 11월 16일
If you use a rectangle matrix (with one side along x-axis and another along y-axis) to represent image, you will get different size of rectangle (along x and y) to enclose the rotated image. So you cannot get the same dimension (except for some special case, eg. rotate by 180 deg) in this sense.
Matt J
Matt J 2021년 11월 16일
You can use the crop option to keep the array the matrix the same size, but there is no guarantee the rotated object will fit inside the original borders:
Z = importdata('triangle_rotate.txt');
Z=imrotate(Z,45,'bicubic', 'crop');
태신 김
태신 김 2021년 11월 17일
Thank you for your helpful answers.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

태그

질문:

2021년 11월 15일

댓글:

2021년 11월 17일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by