在一个二维平面上随机构造一个连通图,上面有若干个(》10000)顶点,而且有若干条连边。
现在实现如下功能:(1)输入一个坐标,显示距离该坐标最近的100个顶点以及相关联的边
(2)地图缩放功能。提示:地图缩的越小,屏幕上显示的点数就越多,但是太多的点,会看不清楚。所以可以考虑只选择一个单元区域内只显示一个代表的点。
以上是要求。小弟刚刚学MFC,不懂得实现上述功能。希望各位大大只告诉我那些点,那些边利用什么控件,要怎样表示。而且,所谓的缩放功能,怎么通过MFC实现,谢谢啦

解决方案 »

  1.   

    1.可以专门定义一个画点的函数,参数就是输入坐标;
    2.二维平面可以定义一个二维数组,这是最简单的,如果还想加其它信息,可以定义一个类,比如:
    class Info
    {
        float x;
        float y;
        CString 地名;
        CString 位置;
        BOOL 是否最近的点;
        int 单元区号;
        ''''
    };
    3.画线用LineTo和MoveTo,画点就用画圆函数和填充函数
    4.查找最短路径的算法,网上应该有,可以查现成的代码
    5.因为是新手,所以可以在视图里的OnDraw函数里的参数的pDC来画,pDC->LineTo(x,y);