zoukankan      html  css  js  c++  java
  • NX二次开发-算法篇-冒泡排序(例子:遍历所有点并排序)

     1     NX9+VS2012
     2 
     3 
     4     #include <uf.h>
     5     #include <uf_ui.h>
     6     #include <uf_curve.h>
     7     #include <uf_obj.h>
     8     #include <uf_part.h>
     9     #include <vector>
    10     
    11     using namespace std;
    12 
    13 
    14 
    15     UF_initialize();
    16 
    17     //遍历前有一点需要注意,首先我们的默认基准坐标系上就有一个点,也就是原点0,0,0。
    18     //还有一个要注意的地方是我们在创建点的时候,如果用创建点命令创建一个空间的点,这个是算一个点。
    19     //如果是用草图去创建点的话,这个是两个点,因为默认草图坐标系原点处就有一个点了。
    20 
    21     vector<double> MyPointZ;
    22     //遍历当前显示部件的所有点
    23     tag_t ObjectTag = NULL_TAG;
    24     UF_OBJ_cycle_objs_in_part(UF_PART_ask_display_part(), UF_point_type, &ObjectTag);
    25     while (ObjectTag != NULL_TAG)
    26     {
    27 
    28         UF_OBJ_set_color(ObjectTag, 186);//设置所有点为红色
    29 
    30         //获取点的XYZ坐标
    31         double PointCoords[3];
    32         UF_CURVE_ask_point_data(ObjectTag, PointCoords);
    33 
    34         MyPointZ.push_back(PointCoords[2]);//添加坐标点Z值到vector
    35     
    36         UF_OBJ_cycle_objs_in_part(UF_PART_ask_display_part(), UF_point_type, &ObjectTag);
    37     }
    38 
    39     //冒泡排序对所有点按Z轴从小到大排序
    40     //通过两个for循环实现冒泡排序的全过程,外层for循环决定冒泡排序的趟数,
    41     //内层for循环决定每趟所进行两两比较的次数。
    42     int i, j;
    43     double t;
    44     for (i = 0; i < MyPointZ.size()-1; i++)
    45     {
    46         for (j = 0; j < MyPointZ.size()-1-i; j++)
    47         {
    48             if (MyPointZ[j]>MyPointZ[j+1])
    49             {
    50                 t=MyPointZ[j];
    51                 MyPointZ[j]=MyPointZ[j+1];
    52                 MyPointZ[j+1]=t;
    53             }
    54         }
    55     }
    56 
    57     //打印
    58     for (i = 0; i < MyPointZ.size(); i++)
    59     {
    60         char msg[256];
    61         sprintf_s(msg, "%f
    ", MyPointZ[i]);
    62         UF_UI_open_listing_window();
    63         UF_UI_write_listing_window(msg);
    64     }
    65 
    66     UF_terminate();

  • 相关阅读:
    谈谈iOS开发如何写个人中心这类页面--静态tableView页面的编写
    H5活动产品设计指南基础版
    提高你的Java代码质量吧:使用valueof前必须进行校验
    最新VMware Workstation 10注册码,绝对可用!
    ORACLE 使用RMAN管理归档日志 archived log
    hdu 2072 单词数
    【早盘必读】9.13证券市场要闻(附股)
    Java程序性能优化
    CSS3媒体查询(Media Queries)
    [cocos2d-x]用CCSpriteBatchNode进行文理贴图的优化
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/10957439.html
Copyright © 2011-2022 走看看