zoukankan      html  css  js  c++  java
  • objectarx向量的用法

    求一圆的外切正方形的四个顶点坐标。

     // cad x轴正方向为零度方向,逆时针为正

    // centerPt为圆心坐标,radius为圆的半径,angle为正方形的第一个点的偏移角度

    AcGePoint3dArray GetCalculateVertexZfx(const AcGePoint3d& centerPt, double radius,double angle)
    {

    AcGePoint3d ptA;
    ptA.x = centerPt.x + radius*sqrt((double)2) * cos(angle);
    ptA.y = centerPt.y + radius*sqrt((double)2) * sin(angle);
    ptA.z = centerPt.z;

    AcGeVector3d vec(centerPt.x-ptA.x, centerPt.y-ptA.y, 0);

    //// 单位向量
    AcGeVector3d unitVec = vec.normalize();

    //// 绕Z轴旋转
    // 以单位向量为基准,先偏移至最近计算的边
    // 求出一条边后,继续偏移,计算另一条
    unitVec.rotateBy( 45*PI/180, AcGeVector3d::kZAxis);


    //// B点坐标 = A点坐标 + AB间的向量
    AcGePoint3d ptB;
    ptB = ptA + unitVec*2*radius;

    //C点坐标是和A点对称的,可以通过圆心算
    AcGePoint3d ptC;

    ptC.x = centerPt.x - radius*sqrt((double)2) * cos(angle);
    ptC.y = centerPt.y - radius*sqrt((double)2) * sin(angle);
    ptC.z = centerPt.z;

    //D点坐标可以通过向量 AB来旋转计算
    AcGePoint3d ptD;
    unitVec.rotateBy(-90*PI/180, AcGeVector3d::kZAxis);
    ptD = ptA+ unitVec*2*radius;

    AcGePoint3dArray array1;
    array1.append(ptA);
    array1.append(ptB);
    array1.append(ptC);
    array1.append(ptD);

    return array1;
    }
    1、向量如何确定方向?向量就是一个坐标量的数值,向量本身与坐标系无关

    2、normalize的作用

    将向量正规化为单位向量

    单位向量(unit vector): 范数为1的向量,若 v 为一非零向量,则

    为一方向与 v 相同之单位向量,这种对一已知向量建构与其同向之单位元向量的程序称为向量正规化(normalization of a vector)

    举例来说,如果一个向量A取了normalize之后(设为A'),点B+A'=点C,则点C和点B的距离为1

    3、向量与距离的区别

    两点间的向量不是两点间的距离,简单理解就是:A点坐标 + AB间的向量 = B点坐标,但是 A点坐标 + A~B点距离 ! = B点坐标,但可以有

    AB间的向量=A~B点距离 * AB间的向量的单位向量 
    ————————————————
    版权声明:本文为CSDN博主「电商思维」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/dingpanhong/article/details/81947120

  • 相关阅读:
    ORA-01045: user XXZY lacks CREATE SESSION privilege; logon denied
    ORA-31626:作业不存在 ORA-31633:无法创建主表"XXX.SYS_IMPORT_FULL_05"
    HTTP 错误 401.3
    mysql 简单游标
    mysql 多重游标嵌套
    表单校验 “灰白字提示”
    Eclipse连接mysql数据库出现问题
    虚拟机无法使用桥接,没有未桥接网络适配器解决办法
    每周进度条(16)
    人月神话阅读笔记06
  • 原文地址:https://www.cnblogs.com/mjgw/p/12348163.html
Copyright © 2011-2022 走看看