• 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

  • 相关阅读:
    016_笼统概述MapReduce执行流程结合wordcount程序
    015_[小插曲]看黄老师《炼数成金Hadoop应用开发实战案例》笔记
    014_HDFS存储架构、架构可靠性分析、副本放置策略、各组件之间的关系
    013_HDFS文件合并上传putmarge功能(类似于hadoop fs -getmerge)
    012_Eclipse中使用 HDFS URL API 事例介绍
    JQuery dataTable插件
    Json对象与Json字符串的转化、JSON字符串与Java对象的转换
    Maven 环境变量设置
    怎样给win7系统硬盘分区
    JDK安装与环境变量配置
  • 原文地址:https://www.cnblogs.com/mjgw/p/12348163.html
Copyright © 2020-2023  润新知