object_anim2.m
来自「用MATLAB做的3D图形的变化,这个是范例,希望会帮到大家」· M 代码 · 共 58 行
M
58 行
close all;
clear all;
% a corner at the origin
corner= [
[1 0 1];
[0 0 1];
[0 1 1];
]';
% defne an object using homogeous coordinates
object = [
[ 1 0 1];
[ 0 1 1];
[ 0.5 0 1];
[ 0 -1 1];
[ 1 0 1];
]';
% rotation in homogeneous coordinates
theta = 10*pi/180;
R = [
cos(theta) -sin(theta) 0;
sin(theta) cos(theta) 0;
0 0 1
];
% translation in homogeneous coordinates
T = [
1 0 0.7
0 1 0
0 0 1
];
N = round(2*pi/theta); % N+1 = number of animation frames
figure;
hold on;
axis equal;
h = object_draw( corner );
set( h, 'Color', 'k' );
for i = 0:N
B = (T*R)^i;
object_draw( B*object );
plot( 2,2, 'w.' );
plot( -2,-2, 'w.' );
end
figure;
hold on;
axis equal;
h = object_draw( corner );
set( h, 'Color', 'k' );
for i = 0:16
B = (T^i)*(R^i);
object_draw( B*object );
plot( 2,2, 'w.' );
plot( -2,-2, 'w.' );
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?