我正在使用R编程中的RGL包进行项目。我很乐意,如果有人可以帮助我使用相同的play3d功能。
这是我打算做的。我有一个polygon3d(x,y,z),它在输出窗口上绘制一个多边形,现在我想在每次迭代时用一些值来翻译它,比如5个单位的10个单位。
我研究过,但所有可用资源都是关于多边形旋转t持续时间。这种情况的例子是:
M <- par3d("userMatrix")
play3d(
par3dinterp(userMatrix=list(M,rotate3d(M, angle=pi, x=1 ,y=0, z=0))),
duration=10
)
上面的代码沿着x轴旋转我的多边形10秒并停止。
我希望将我的多边形翻译10秒,并使用一些给定的参数指定每秒翻译多少。
我的多边形基本上是一个加号(代表一个四轴飞行器),我想要将运动显示为从地面(x-y轴)升高到空气(z轴)。
任何帮助都将深受赞赏。
全部谢谢
答案 0 :(得分:0)
您需要使用翻译矩阵的转置来执行此操作。例如,要翻译(x,y,z),请使用
M <- par3d("userMatrix")
play3d(
par3dinterp(userMatrix=list(M, M %*% t(translationMatrix(x, y, z)))),
duration=10
)
这是在?rgl.setMouseCallbacks示例中完成的。
编辑添加x,y,z值以回答下面的问题。