我怎样才能只调用一次我的函数来平移、旋转等?
how can i call my function just once to translate,rotate etc?
你好,我有一个功能和一个问题:)
function[result] = transform_vertices(v, m)
for i = 1 : size(v,2)
v(:,i) = m * v(:,i);
end
result = v;
end
我应该只使用一次这个功能(transform_vertices)来旋转,翻译但是我怎么能只使用一次呢?我的代码是
image1_vertices = quad;
image1_vertices = transform_vertices(transform_vertices(quad,mrotate(30)),mtranslate(-2,0));
> PS: mtranslate and mrotate are also function which calculates
> rotation,translation
我猜quad
是一组坐标?您的 transform_vertices
函数仅执行左矩阵乘法。所以如果你这样做,你会得到相同的结果:
image1_vertices = transform_vertices(quad, mtranslate(-2,0)*mrotate(30));
事实上,你甚至不需要使用该功能,你可以这样做:
image1_vertices = mtranslate(-2,0) * mrotate(30) * quad;
你好,我有一个功能和一个问题:)
function[result] = transform_vertices(v, m)
for i = 1 : size(v,2)
v(:,i) = m * v(:,i);
end
result = v;
end
我应该只使用一次这个功能(transform_vertices)来旋转,翻译但是我怎么能只使用一次呢?我的代码是
image1_vertices = quad;
image1_vertices = transform_vertices(transform_vertices(quad,mrotate(30)),mtranslate(-2,0));
> PS: mtranslate and mrotate are also function which calculates
> rotation,translation
我猜quad
是一组坐标?您的 transform_vertices
函数仅执行左矩阵乘法。所以如果你这样做,你会得到相同的结果:
image1_vertices = transform_vertices(quad, mtranslate(-2,0)*mrotate(30));
事实上,你甚至不需要使用该功能,你可以这样做:
image1_vertices = mtranslate(-2,0) * mrotate(30) * quad;