标题:求大师给补充几句,我不会C++编程,感谢了!
只看楼主
cyxz
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-5-18
结帖率:0
已结贴  问题点数:20 回复次数:2 
求大师给补充几句,我不会C++编程,感谢了!
int usrDrawLine(int& step,int& flag)
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState())
    static EB_NODE yy;    //定义圆
    static EB_POINT    pp,yx,yd,dd;    //定义点
    int ret1=0,ret2=0,ret3=0;    //定义内存
    double r;
    ////////////////////////////////////////////////////////////////////定义数组
    ebRegisterPopMenu(); // 登记工具点菜单
    switch(step)
    {
    case 0: // 第一步
        ebPrompt("请指定原点:");
        break;
    case 1: // 第二步
        ret1=ebGetPoint(&yd); // 得到点的信息
        ebPrompt("请拾取圆或点:");
        break;
    case 2: // 第三步 往返取值,存入数组,最后写入TXT文件
        ret2=ebGetPoint(&pp);//拾取点
        if(ret2==RT_FINISH||ret2==RT_USERBRK) //    如果点鼠标右键或按键盘的ESC键,则结束绘图,并将结果导入记事本   
            {
            //
            /////////////////////////////////////////////////////将数组内容按模式写入记事本"C:\Documents and Settings\Administrator\My Documents\c1.txt"
            //
            yy=NULL;
            ebFreeNode(yy); // 释放所占用内存
            ebEndCommand(); //    结束命令
            ebClearPrompt(); //    清除提示区内的提示
            ebRedraw();
            return RT_ISOVER;
            }
        else
            {
                yy=ebGetNode(pp,CIRCLE);    //拾取圆
                if(yy==NULL)    //如果拾取的不是圆(实际是点)
                    {
                    ebTransPtToLc(yd,0,pp,&dd);    //转为用户坐标系坐标
                    //
                    // 已经得到了点的坐标(dd.x,dd.y) 半径 r=0
                    ///////////////////////////////////////////////将得到的点的坐标与半径(值为0)写入数组
                    //

                    ebClearPrompt(); //    清除提示区内的提示
                    step=1;    //返回第三步继续拾取
                    ebPrompt("请拾取圆或点:");
                    break;
                    }
                else
                {
                    ret3=ebGetCircleData(yy,&yx,&r); // 得到圆的信息
                    //
                    //已经得到了圆心的坐标(yx.x,yx.y) 半径 r
                    ///////////////////////////////////////////////将得到的圆的的坐标与半径写入数组
                    //
                    yy=NULL;
                    ebFreeNode(yy); // 释放所占用内存
                    ebClearPrompt(); //    清除提示区内的提示
                    step=1;//返回第三步继续拾取
                    ebPrompt("请拾取圆或点:");
                    break;
                }
            }
    }
    return RT_NORMAL;
}

[此贴子已经被作者于2020-5-18 19:09编辑过]

搜索更多相关主题的帖子: 提示 写入 坐标 数组 break 
2020-05-18 19:08
cyxz
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-5-18
得分:0 
c1.txt的文件内容样例:
22 30 20.1
-45 -38 10
180 22 0
-30 16 6
13 -17 20
……

中间的  是TAB空格


程序上下往返循环,边取值边存进数组,取到点的坐标与半径(数值为0)就返回case 2重新开始,否则继续往下取圆的坐标与半径,直到右键结束,将数组写入txt文件。

[此贴子已经被作者于2020-5-18 19:16编辑过]

2020-05-18 19:11
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
完全不懂你想要什么
2020-05-19 08:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501671-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013015 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved