我想画一个半圆,用
BOOL Chord( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4 );
还是
BOOL Arc( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4 );                                                                     请问后面两个是什么的坐标?是不是两个端点的坐标?msdn看不明白
再问一问题,画正多边形有没有专门的函数?还是只用Polygon把各个点连接起来。我要实现在鼠标画出的矩形框内画正多边形,所以不知道如何求各个点的坐标。画正多边形是不是还有别的方法?

解决方案 »

  1.   

    看不懂啊!
    你只要明白,它画圆弧都是基于先构造出一个矩形框那就好说了
    x1,y1是矩形框的左上角的坐标值
    x2,y2是矩形框的右上角的坐标值x3,y3是矩形框的左下角的坐标值,还是圆弧的起点值
    x4,y4是矩形框的右下角的坐标值,还是圆弧的终点值
      

  2.   

    谢谢
    麻烦回答一下第二个问题
    我知道Polygon是画任意多边形的,
    但是画正多边形有没有专门的函数?
      

  3.   

    画多边形就是用Polygon这个函数,边数可以自己设定。
    后两个参数,是控制画弧的宽度,就是结尾的两点
      

  4.   


    用ARC画出的图形只是一个弧形:用Chord画出的图形是个弦形,多了连接起点、终点的直线。
    用法如下:
    1.Arc用法:
    CRect Rec;
    POINT start,end;
    ......//给Rec,start,end赋值
    pDC->Arc(Rec,start,end);2.Chord用法:
    CRect rec;
    int r=50;
    POINT s,e;
    rec.left=110;
    rec.top=110;
    rec.right=rec.left+2*r;
    rec.bottom=rec.top+2*r; s.x=rec.left+r;
    e.x=rec.left+r;
    s.y=rec.top;
    e.y=rec.bottom;
    pDC->Chord(&rec,s,e);注意:CRect rec应该是圆弧/弦形的椭圆的外切矩形。在使用的时候应该特别注意。楼上各位都说得很好,多边形就这个函数好用。