小弟目前用单文档编写路径规划东东,在Doc中处理算法数据,
DOC 中定义
CPoint Point;
double radius;记录当前规划路径上的点,
在view类中定义了显示这个点的函数void CPathView::draw(CPoint point,double r);
如何能够实时调用draw函数显示轨迹呢?求助!!先谢谢大家了!!!
DOC 中定义
CPoint Point;
double radius;记录当前规划路径上的点,
在view类中定义了显示这个点的函数void CPathView::draw(CPoint point,double r);
如何能够实时调用draw函数显示轨迹呢?求助!!先谢谢大家了!!!
{
SetTimer(1,10,NULL);
CPathDoc *PDoc=GetDocument();
PDoc->Potential();//执行路径规划算法
// TODO: Add your command handler code here
}
void CPathView::OnTimer(UINT_PTR nIDEvent)//定时器
{// TODO: Add your message handler code here and/or call default
CDC *pDC=GetDC();
OnDraw(pDC);
ReleaseDC(pDC);
CView::OnTimer(nIDEvent);
}
void CPathView::OnDraw(CDC* pDC)
{
CPathDoc *pDoc=GetDocument();
temp_point=pDoc->Point;//计算的当前点信息
RRr=pDoc->radius;
CBrush brush;
brush.CreateSolidBrush(RGB(255,0,0));
if(pDC->GetSafeHdc())
{pDC->SelectObject(brush);
pDC->Ellipse(temp_point.x-RRr,temp_point.y-RRr,temp_point.x+RRr,temp_point.y+RRr);
// 轨迹绘制
}
UpdateWindow();
}
可是还是不行,有一点我的路径规划函数是执行多线程的,即可以同时进行多粒子动态规划,线程函数里设定没计算到下一个点就sleep(20),以便能放慢速度好观察。
之前的程序可以运行的,效果也不错,我是把所有东西都放在View类里,现在我把绘图和计算分开了,就不行了,看不出效果了,求求大家帮帮忙!
{
Invalidate();
CView::OnTimer(nIDEvent);
}
我改了以后只能在最后目标点看到,没有那种效果,
“另外brush选入DC后还要选出”怎么办呢,谢谢,不懂就问哈,再次谢谢!