Matlab 如何调用函数一次以进行平移、旋转等操作?

Matlab 如何调用函数一次以进行平移、旋转等操作?,matlab,affinetransform,Matlab,Affinetransform,你好,我有一个函数和一个问题:) 我应该只使用此函数(变换顶点)一次来旋转、平移,但如何只使用一次?我的代码是 image1_vertices = quad; image1_vertices = transform_vertices(transform_vertices(quad,mrotate(30)),mtranslate(-2,0)); > PS: mtranslate and mrotate are also function which calculates > rota

你好,我有一个函数和一个问题:)

我应该只使用此函数(变换顶点)一次来旋转、平移,但如何只使用一次?我的代码是

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
是一组坐标?您的
变换\u顶点
函数只执行左矩阵乘法。因此,如果您这样做,您将得到相同的结果:

image1_vertices = transform_vertices(quad, mtranslate(-2,0)*mrotate(30));
事实上,您甚至不需要使用该函数,只需执行以下操作:

image1_vertices = mtranslate(-2,0) * mrotate(30) * quad;

这个问题有点不清楚。为什么不能只使用一个函数调用?你到底想实现什么?@mikkola我实际上实现的只是简单的旋转(30度)和平移(-2,0),但仅仅一次函数调用不起作用,或者我不知道我不知道你是否定义了一个合适的函数,你可以通过单个矩阵乘法对向量应用旋转和平移。thx!是的,四元组正是你所想的,这个表单工作得非常完美
image1_vertices = mtranslate(-2,0) * mrotate(30) * quad;