gpt4 book ai didi

java - 在 Matlab/Java 中将手部运动建模为 3D 曲线

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:34:57 25 4
gpt4 key购买 nike

我只需要一些关于我遇到的问题、去哪里看等等的指导。我在我的一个项目中使用了运动跟踪手套,它为每个手指和手掌返回一个 X、Y 和 Z 值.

我想做的是首先根据这些坐标创建每个手指运动的表示,然后将它们中的每一个附加到手掌的运动,以获得手的表示。一旦我完成了第一步,第二步就会很容易,但是……我做不到。

我正在尝试用 Java 实现它(更好的分析可能性),但只能设法同时制作包含所有点的 3D 图形。每条曲线中大约有 45,000 个,所以...您是否知道如何让它更像动画,例如在给定时间 t 显示其 XYZ 坐标上的一个点?

另一个问题是:matlab 实际上是最好的选择吗?我知道如何在 Java 中制作这个动画,但我从未使用 Java 进行数据管理,我怀疑它是否真的擅长它。是否有另一种软件/语言可以很好地进行数据管理和动画制作?还是只用Java做动画,用Matlab做分析?

谢谢!

最佳答案

您可以执行以下操作。令 pos 为 Nx3 矩阵,其中包含 N 个时间实例的点的 x、y、z 数据。您编写一个设置变量等的主脚本,并创建一个调用绘图函数“doPlot”的循环计时器 t1。主要脚本是,

clear all
clc

pos=rand(100,3)*10; %position matrix of random x,y,z coordinates. 100 time instances here

ax=axes;
set(ax,'NextPlot','replacechildren');
axis([0 10 0 10 0 10]); %set axis limits- fit to your needs

Dt=0.1; %sampling period in secs

k=1;
hp=plot3(pos(k,1),pos(k,2),pos(k,3),'o'); %get handle to dot object

t1=timer('TimerFcn','k=doPlot(hp,pos,t1,k)','Period', Dt,'ExecutionMode','fixedRate');
start(t1);

接下来创建绘图函数 doPlot,

function k=doPlot(hp,pos,t1,k)

k=k+1;
if k<length(pos)
set(hp,'XData',pos(k,1),'YData',pos(k,2),'ZData',pos(k,3));
axis([0 10 0 10 0 10]);
else
stop(t1)
end

您会看到 3D 中的一个点(圆)在空间中随机移动。动画周期为 Dt 秒(在本例中为 0.1 秒)。您必须使它适合您的需要。这是 Matlab 中的基本动画。你可以做更多。这取决于您的需求。

关于java - 在 Matlab/Java 中将手部运动建模为 3D 曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8730985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com