MFC中如何画一个五角星,根据用户画的一条线 确定整个五角星,这条线也是五角星的一条边,好心人帮帮忙我算出五角星所在圆的圆心和半径,但是怎么实现啊 要算出每个角的坐标吗?但是有好多
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/28 01:10:15
MFC中如何画一个五角星,根据用户画的一条线 确定整个五角星,这条线也是五角星的一条边,好心人帮帮忙我算出五角星所在圆的圆心和半径,但是怎么实现啊 要算出每个角的坐标吗?但是有好多
MFC中如何画一个五角星,根据用户画的一条线 确定整个五角星,这条线也是五角星的一条边,好心人帮帮忙
我算出五角星所在圆的圆心和半径,但是怎么实现啊 要算出每个角的坐标吗?但是有好多种情况,用户画的第一笔后很多方向啊.呜呜呜呜.还有我知道是把圆平均分五份,但是在代码中要怎样写啊. 我没有分...能不能帮忙啊
MFC中如何画一个五角星,根据用户画的一条线 确定整个五角星,这条线也是五角星的一条边,好心人帮帮忙我算出五角星所在圆的圆心和半径,但是怎么实现啊 要算出每个角的坐标吗?但是有好多
半径我就不去算了,我也不是很清楚,我有个不知道能不能帮上!
你画直线以后已经确定了2点 再参考我一下的,修改下,应该可以弄出来--
void CDrawView::OnRButtonDown(UINT nFlags,CPoint point)
{
\x05// TODO:Add your message handler code here and/or call default
\x05ptCenter=point;
\x05
\x05CView::OnRButtonDown(nFlags,point);
}
void CDrawView::OnLButtonUp(UINT nFlags,CPoint point)
{
\x05// TODO:Add your message handler code here and/or call default
\x05int r=50;
\x05double PI=3.1415926;
\x05//五条线,六个点,起点和终点重合
ptCenter=point;
//左上点
apoint[0].x=ptCenter.x-(long)(r*sin(2*PI/5));
apoint[0].y=ptCenter.y-(long)(r*cos(2*PI/5));
//右上点
apoint[1].x=ptCenter.x+(long)(r*sin(2*PI/5));
apoint[1].y=ptCenter.y-(long)(r*cos(2*PI/5));
//左下点
apoint[2].x=ptCenter.x-(long)(r*sin(PI/5));
apoint[2].y=ptCenter.y+(long)(r*cos(PI/5));
//正上点
apoint[3].x=ptCenter.x;
apoint[3].y=ptCenter.y-(long)r;
//右下点
apoint[4].x=ptCenter.x+(long)(r*sin(PI/5));
apoint[4].y=ptCenter.y+(long)(r*cos(PI/5));
//回到起点
apoint[5]=apoint[0];
//然后呢就直接画就行了
//用LineTo函数画
HDC hdc;
hdc=::GetDC(m_hWnd);
MoveToEx(hdc,apoint[0].x,apoint[0].y,NULL);
LineTo(hdc,apoint[1].x,apoint[1].y);
LineTo(hdc,apoint[2].x,apoint[2].y);
LineTo(hdc,apoint[3].x,apoint[3].y);
LineTo(hdc,apoint[4].x,apoint[4].y);
LineTo(hdc,apoint[5].x,apoint[5].y);
\x05CView::OnLButtonUp(nFlags,point);
}