2023年6月22日发(作者:)
机械手运动仿真运动实验报告
学院:机械工程学院
专业班级:现代化设计1301
学生姓名:郑可航学 号:2
指导教师:荀一
日期: 2016年6月18日 一、 程序目标:
使得C点沿着CC’移动
图一
二、问题分析:
将CC’十等分,得出AB线的角度变化,如图二所示。
得出
当x=1,且x++,Θ1=90-2.09*x-y
y=0.0125*(x-1)*x/2→Θ1=90-(2.09*x-0.0125*(x-1)*x/2)
图二 三、关键程序:
L2的画法:
voidCDrawrobotDlg::drawrobotL2(float angle0, float angle, float x1,
float x2, int y)
{
pDC->MoveTo(200+x1*
cos((angle0+90)*Pi/180),350-x1*sin((angle0+90)*Pi/180));
pDC->LineTo(200+x1* cos((angle0+90)*Pi/180) + x2 * cos((angle+
angle0)*Pi/180)+5*sqrt(1/2)*y,350-x1*sin((angle0+90)*Pi/180) - x2 *
sin((angle+ angle0)*Pi/180)+5*sqrt(1/2)*y);
}
L1&L2的旋转:
UINT CDrawrobotDlg::MoveThread(void *param)
{
CDrawrobotDlg *pDlg = (CDrawrobotDlg*)param ;
if(!pDlg->m_bMove)
{
return 0 ;
}
for(int x =1 ; x < 11; x++)
{
pDlg->m_fAngle0 = pDlg-> m_fAngle0=
-2.09*x-0.13*(x-1)*(x-2)/2+0.0125*(x-3)*(x-2)/2;
pDlg->m_bx = pDlg-> m_bx+1;
pDlg->Invalidate(FALSE) ;
Sleep(pDlg->m_iTime) ;
}
}
启动与停止旋转:
voidCDrawrobotDlg::OnBUTTONStart()
{
if(m_bMove)
{
return ;
}
m_bMove = true ;
AfxBeginThread(MoveThread, this) ;
}
voidCDrawrobotDlg::OnBUTTONStop()
{
m_bMove = false ;
}
软件界面截图:
其他:程序已经达到运行目标,但轨迹没有记录,不能明显展示。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1687428640a9330.html
评论列表(0条)