我想描述一个电子的运动轨迹。所需要的效果是这样的:一个点按照椭圆轨迹运动,同时这个椭圆一竖直直线(即z轴)转动。我已经写好了计算电子每一时刻的坐标函数,也就是说我可以在每一个时刻提供电子的三维坐标。我准备同SetPixvel()函数来画点。就是动画的部分不会做。
曾蒙BackHome兄指点,方法大致有了,可是没法实现,我的windwos编程基础太差,不知道怎么按照BackHome兄的指点去做。http://expert.csdn.net/Expert/topic/2326/2326879.xml?temp=.8532221
又蒙babaoshan兄的耐心讲解,教我怎么用OpenGL,OpenGL我是会点了,可是我还是无法实现自己的程序。http://expert.csdn.net/Expert/topic/2371/2371363.xml?temp=6.464785E-02
今天,我仍不放弃,希望哪位能够仔细的为我讲解一下。我不需要效果很漂亮。只需要能示意就可以了。希望大家能帮一个忙,小弟不胜感激!
曾蒙BackHome兄指点,方法大致有了,可是没法实现,我的windwos编程基础太差,不知道怎么按照BackHome兄的指点去做。http://expert.csdn.net/Expert/topic/2326/2326879.xml?temp=.8532221
又蒙babaoshan兄的耐心讲解,教我怎么用OpenGL,OpenGL我是会点了,可是我还是无法实现自己的程序。http://expert.csdn.net/Expert/topic/2371/2371363.xml?temp=6.464785E-02
今天,我仍不放弃,希望哪位能够仔细的为我讲解一下。我不需要效果很漂亮。只需要能示意就可以了。希望大家能帮一个忙,小弟不胜感激!
怎么做啊?请说详细点,最好能举例OnDraw()函数怎么写?
{
pDC->SetPixvel(x,y);//x,y自己算
}void xxx::OnTimer()
{
Invalidate();
}
橡皮线的画法(以直线为例):
方法:得到设备环境指针,得到原来的绘图模式,得到原来的画笔,设置画笔,从起点画到前一个点,
然后再从起点画到当前点,恢复画笔,恢复画图模式。
Draw()
{
CClientDC clientDC(theView) ; // 得到设备环境指针 //theView为当前视图。
int n = GetROP2(clientDC.GetSafeHdc()); // 得到原来的绘图模式
CPen* pOldPen;
if (m_Pen)
pOldPen= clientDC.SelectObject(m_Pen); // 得到原来的画笔
clientDC.SetROP2(R2_XORPEN);//设置画笔
clientDC.MoveTo(m_begin); //移到起点
clientDC.LineTo(prePos);//画到前一个点
clientDC.MoveTo(m_begin); // 起点
clientDC.LineTo(curPos);//当前点
clientDC.SelectObject(pOldPen); // 恢复原来的画笔
clientDC.SetROP2(n); // 恢复原来的绘图模式
}
你可以把中间划直线这段换成划椭圆和点就可以达到你要的效果。
接下来我们要做的工作就是确定在何时调用我们的画图函数,最
简单的方法就是用个计时器settimer();然后处理wm_timer消息,
在OnTimer()内设置时间间隔,调用画图函数。