| 查看: 620 | 回复: 4 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
rose198506木虫 (著名写手)
·不 想 玩 了·
|
[求助]
三维矩形块可以直行、转弯的运动模拟,走过的轨迹也需要~救火了~谢谢大家了~
|
|
|
我想在matlab里面实现的是:两条直杆(有交点或者用一条横轴连接起来的倒U字型方式都可以),一步一步的往前走,是直行的,其中当右脚着地的时候可以旋转一定的角度进行转弯(可以左转也可以右转)。然后在GUI界面下,当我给他一个偏角时,比如2度(或者-2度),然后他就转2度(-2度),然后朝着已经转过一定角度的方向的正面继续前行。 我想这个要用到GUI,还有就是三维的图的简单建模,还有就是相对坐标轴的建立和跟踪。因为我是初学,所以一点基础没有,希望大家给我说说该做啥。 如果大家觉得太麻烦,一时半会没有时间,可不可以先给我写个简单的程序,程序要求如下: 一个三维矩形块在原点处,在GUI界面下,给他一个直行距离,他就可以直行相应距离。再给一个距离,他会从这个新位置上继续前行一定的距离;如果我给他一个角度,他就可以沿着矩形块的中心旋转一个角度~然后呢在这个转好的角度上时,当给定一定的前行距离时,他可以面朝新的前方继续前行~并且还要把这个走过的这个轨迹能够显示出来~~~不知道我描述的是不是清楚~救火啦 ~ 必有重金奖励~~~ |
» 猜你喜欢
全日制(定向)博士
已经有5人回复
假如你的研究生提出不合理要求
已经有10人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
参与限项
已经有3人回复
实验室接单子
已经有4人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复

rose198506
木虫 (著名写手)
·不 想 玩 了·
- 应助: 83 (初中生)
- 贵宾: 0.834
- 金币: 4075.7
- 散金: 2652
- 红花: 13
- 沙发: 3
- 帖子: 2209
- 在线: 461.5小时
- 虫号: 1464650
- 注册: 2011-10-28
- 性别: MM
- 专业: 机器人学及机器人技术

4楼2012-09-11 12:14:51
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
rose198506: 金币+22, ★★★很有帮助, 谢谢你的帮助~如果我想要不是这种连续运动的,而是给一个距离他就走一个距离呢?给一个角度就转一个角度呢 2012-09-11 10:19:52
rose198506: 金币+44, ★★★★★最佳答案, 已经收到你的文件~实在是太棒了~~~真的是很感谢,重金送上~~~你技术太厉害了 2012-09-11 21:59:15
感谢参与,应助指数 +1
rose198506: 金币+22, ★★★很有帮助, 谢谢你的帮助~如果我想要不是这种连续运动的,而是给一个距离他就走一个距离呢?给一个角度就转一个角度呢 2012-09-11 10:19:52
rose198506: 金币+44, ★★★★★最佳答案, 已经收到你的文件~实在是太棒了~~~真的是很感谢,重金送上~~~你技术太厉害了 2012-09-11 21:59:15
|
下面的程序应该会对你的问题有帮助。直行和旋转都没有问题。我试过将它做成GUI,但是不大会设置坐标轴的属性,坐标轴的单位好像与输入的数值不一致。 function exam03 %UNTITLED2 Summary of this function goes here % Detailed explanation goes here xc=[0,5,5,0,0]; yc=[0,0,10,10,0]; h=line(xc,yc,'EraseMode','xor'); axis([-40,40,-40,40]); axis equal; grid on; thta=0; %%%%%直行%%%%%% for t=0:0.005:20; x1=xc+t*cos(thta); y1=yc+t*sin(thta); set(h,'xdata',x1,'ydata',y1,'linewidth',3); drawnow; end %%%%%%旋转%%%%%%%% xc=x1; yc=y1; xm=mean(xc(1:4));ym=mean(yc(1:4)); x=xc-xm; y=yc-ym; for thta1=0:0.001:pi/2; x1=x*cos(thta1)-y*sin(thta1)+xm; y1=y*cos(thta1)+x*sin(thta1)+ym; set(h,'xdata',x1,'ydata',y1,'linewidth',3); drawnow; end %%%%%%%%%直行%%%%%%%%% xc=x1; yc=y1; thta=thta+thta1; for t=0:0.005:20; x1=xc+t*cos(thta); y1=yc+t*sin(thta); set(h,'xdata',x1,'ydata',y1,'linewidth',3); drawnow; end %%%%%%旋转%%%%%%%% xc=x1; yc=y1; xm=mean(xc(1:4));ym=mean(yc(1:4)); x=xc-xm; y=yc-ym; for thta1=0:0.001:pi/2; x1=x*cos(thta1)-y*sin(thta1)+xm; y1=y*cos(thta1)+x*sin(thta1)+ym; set(h,'xdata',x1,'ydata',y1,'linewidth',3); drawnow; end %%%%%%%%%直行%%%%%%%%% xc=x1; yc=y1; thta=thta+thta1; for t=0:0.005:20; x1=xc+t*cos(thta); y1=yc+t*sin(thta); set(h,'xdata',x1,'ydata',y1,'linewidth',3); drawnow; end %%%%%%旋转%%%%%%%% xc=x1; yc=y1; xm=mean(xc(1:4));ym=mean(yc(1:4)); x=xc-xm; y=yc-ym; for thta1=0:0.001:pi/2; x1=x*cos(thta1)-y*sin(thta1)+xm; y1=y*cos(thta1)+x*sin(thta1)+ym; set(h,'xdata',x1,'ydata',y1,'linewidth',3); drawnow; end %%%%%%%%%直行%%%%%%%%% xc=x1; yc=y1; thta=thta+thta1; for t=0:0.005:20; x1=xc+t*cos(thta); y1=yc+t*sin(thta); set(h,'xdata',x1,'ydata',y1,'linewidth',3); drawnow; end %%%%%%旋转%%%%%%%% xc=x1; yc=y1; xm=mean(xc(1:4));ym=mean(yc(1:4)); x=xc-xm; y=yc-ym; for thta1=0:0.001:pi/2; x1=x*cos(thta1)-y*sin(thta1)+xm; y1=y*cos(thta1)+x*sin(thta1)+ym; set(h,'xdata',x1,'ydata',y1,'linewidth',3); drawnow; end end |

2楼2012-09-11 08:19:40

3楼2012-09-11 10:38:27

5楼2012-09-11 14:20:58












回复此楼