求编程高手,关于写地图的问题
是这样,我们老师要我通过这个程序找突破口,我将程序发过去,大家先运行下看看,鼠标左键拖动可以画障碍物,鼠标右键可以指使行走的方向,GO就可以运行,但是我所要做的没这么复杂,我们老师只要求我把预先用鼠标画出障碍物在另一界面通过扫描,将在范围内的显示出来(就是画地图),我在其中发现了这么一段写测距线的程序:void ObsAvoid::DrawObs( )
{
if ( m_pDC != NULL )
{
CPen redPen(PS_SOLID, 1, RGB(115,30+50,50) ), *pOldPen;
pOldPen = m_pDC->SelectObject( &redPen );
int i=0;
for(i=0; i<360; i++)
{
m_pDC->MoveTo(m_x,m_y);
int x2 = m_x + (int)( m_obsData[i] * cos( i/180.0*PI +m_theata-pi/2 ) );
int y2 = m_y + (int)( m_obsData[i] * sin( i/180.0*PI +m_theata-pi/2 ) );
m_pDC->LineTo( x2, y2 );
}
m_pDC->SelectObject( pOldPen );
}
}
void ObsAvoid::SetpDC(CDC *dc,int mod, int x, int y, double theata )
{
m_pDC = dc;
m_mod = mod;
m_x = x;
m_y = y;
m_theata = theata;
}
这里的(X2,Y2)其实就是扫描的结果,对吧,我就想这样,如果要把这个测距线因障碍物而缩短时的那些端点储存成点并且显示出来,这个程序该如何编写?我是真的对C++一点基础都没有,老师那也总是……唉~,只能求助大家了~
obsavoidsimutest (1).rar
(292.92 KB)