zoukankan      html  css  js  c++  java
  • ObjectARX ads_point 和AcGePoint3d 的转化

    ads_point 是原来的ADS 编程中定义的一种数据类型,其定义为:

    typedef ads_real ads_point[3];

    而ads_real 则被定义为:

    typedef double ads_real;

    可以看出,ads_point 实际上是一个三维浮点数组,它至今仍在与ADS 相关的编程中使用。从ads_point 转换到AcGePoint3d 类型的点,即可以通过数组元素直接赋值,也可以通过asPnt3d 函数直接转化:
    1. 通过数组元素交换:

    ptInsert[X] = pt[X];
    ptInsert[Y] = pt[Y];
    ptInsert[Z] = pt[Z];

    2.使用asPnt3d 函数(需要包含geassign.h 头文件):

    AcGePoint3d ptInsert = asPnt3d(pt);

    之所以可以使用X、Y 和Z 直接作为数组的下标,是由于这三个字母在ObjectARX 有特殊的定义:

    enum { X = 0, Y = 1, Z = 2 };
    1 // AcgePoint3d转化成ads_point
    2 void LzxCalculation::AcgePoint3dToads_point(const AcGePoint3d& pt, ads_point& adsPoint)
    3 {
    4     adsPoint[X] = pt.x;
    5     adsPoint[Y] = pt.y;
    6     adsPoint[Z] = pt.z;
    7 }
  • 相关阅读:
    银行代码
    c#第二章
    c#第一章
    S1304HTML内测测试分析
    HTML第九章
    HTML第八章
    HTML第七章
    Jupyter Notebook与Jupyterhub的安装与配置
    如果你要拍一部微电影
    针对Excel的vbs操作
  • 原文地址:https://www.cnblogs.com/lzx838/p/2633617.html
Copyright © 2011-2022 走看看