ODA(Open Design Alliance)是一套与ARX类似的图形开发库,熟练使用ODA接口,可以大大加快我们的几何图形开发效率。

一、添加常用的头文件

#include "OdaCommon.h"
#include "GePoint2d.h"
#include "GeVector2d.h"
#include "GeMatrix2d.h"

二、 矩阵变换和图形放大

 OdGePoint2d ptBase; //加入我们需在一张建筑施工图中添加一个柱节点的大样图,需要把这个大样图放大10倍,则double dScale = 10;OdGeMatrix2d matScale;//创建比例转换矩阵matScale.setToScaling(dScale, OdGePoint2d::kOrigin); //相对于我们设定的原点放大10倍OdGeMatrix2d matTranslate;matTranslate.setToTranslation(OdGeVector2d(ptBase.x, ptBase.y)); //将我们在原点画的图移到ptBaseOdGeMatrix2d mat = matTranslate * matScale; //先将大样图在原点处放大,再移动到ptBase

图形详解:

三、 平移

 OdGePoint2d pt2 = ptCenter + OdGeVector2d(0.0, dRedius); //圆心位置沿着x方向移动0,沿着y方向移动一个半径的距离

四、旋转

 double dAngle135 = M_PI/4.0*3.0; OdGePoint2d pt1 = pt2;pt1.rotateBy(-dAngle135, ptCenter); //pt2沿着圆心旋转-135度,获得pt1OdGePoint2d pt0 = pt1 + OdGeVector2d(-1.0,-1.0).normalize()*dLength;//pt1沿着x的负方向和y的负方向移动dLength的长度,得到pt0pt0.transformBy(mat);pt1.transformBy(mat);pt2.transformBy(mat);  //将我们再ptBase创建的点移动到我们设定的坐标位置

【C++】ODA的基本操作-平移、旋转、矩阵变换相关推荐

  1. Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊)

    Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊) 目录 Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊) 前言 简单的平移.旋转和放缩 其他元素的一些基本使用 qm ...

  2. 20P46 Premiere预设800种干扰缩放平移旋转分割拉伸全景透视扭曲炫光视频无缝转场

    20P46 Premiere预设800种干扰缩放平移旋转分割拉伸全景透视扭曲炫光视频无缝转场 模版信息: 适用软件:Premiere Pro CC 2015.3 或更高版本 使用插件:无需外置插件 分 ...

  3. 三维空间中的几何变换-平移旋转缩放

    前言 前段时间由于项目需要,深入学习了下图形几何变换,主要是绕任意轴旋转部分(其他的已有一定基础),现记录学习笔记. 文章内容部分引用并参考了下面的博客: http://netclass.csu.ed ...

  4. Unity 触屏手势控制Camera平移旋转缩放

    Unity 触屏手势控制Camera平移旋转缩放 实现思路 单点触屏,位移增量控制相机平移: 两点触屏,两点位移控制相机前后移动(缩放):两点中一点不位移控制相机绕点旋转: 实现需要的API Touc ...

  5. flutter Transform 矩阵变换(平移旋转缩放)

    Transform其子Widget绘制时外面包着矩阵变换(transformation),通过它可以实现各种矩阵操作. 1.widget平移 效果图 2.旋转(rotate) 效果图: 3.缩放 Tr ...

  6. 三维坐标 偏转_三维坐标变换原理-平移, 旋转, 缩放

    给定一个二维点(x, y),那么形如(kx, ky, k)的所有三元组就都是等价的,它们就是这个点的齐次坐标(homogeneous).齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示,是指 ...

  7. OpenCV——图像的平移旋转

    1.学习图像数据格式Mat 像素就是把图形分割成很多大小相等的小正方形,其中每一个都是一个像素.我们常见的800*600的图形,800代表宽度,600代表高度. 灰度图像就是黑白灰,只有这三种颜色,其 ...

  8. python处理svg 平移 旋转_d3.js封装文本实现自动换行和旋转平移等功能

    我们下面话不多说,本文主要介绍的是利用D3.js封装文本实现自动换行功能的步骤,下面来一起看看吧. 一.引用 multext.js 文件 multext.js function appendMulti ...

  9. python处理svg 平移 旋转_svg rotate 怎么转化平移和旋转两个参数。

    问题描述 现在我要转化一下svg的rotate算出平移和旋转角度 问题出现的环境背景及自己尝试过哪些方法 function rotate(p1,p2,r){var x=p1.x-p2.x; var y ...

最新文章

  1. python自学攻略-Python自学攻略
  2. IOS - 快速入门
  3. Silverlight WCF 上传实现
  4. java 定时器delay_技术贴-java 定时器
  5. boost::weak_ptr和enable_shared_from_this
  6. 计算机表格中需要乘法求和,《怎么在Excel表格里面使用乘法求和》
  7. Eclipse中集成SVN
  8. oracle linux 下载地址
  9. 电路交换、报文交换和分组交换的区别
  10. 实现winfrom进度条及进度信息提示,winfrom程序假死处理
  11. [Matlab]中solve函数与subs函数的使用方法
  12. mysql error 1114_ERROR 1114 (HY000): The table is full
  13. 联想 ThinkPadE480无法调节亮度
  14. 【Vue学习笔记】尚硅谷Vue2.0+Vue3.0全套教程丨vue.js从入门到精通
  15. windows10下安装MSYS2+MinGW64
  16. BZOJ 4589 Hard Nim
  17. k米评分容易得高分的歌_下线“交友陪玩”!全民K歌回应涉黄被罚:上月已完成整改,强化审核...
  18. 手把手教你制作一个文件加密工具
  19. 根据证券代码判断交易市场,补充为带wind后缀的代码
  20. 境界死神激斗怎么在电脑上玩 境界死神激斗电脑版玩法教程

热门文章

  1. SDCC 2016架构运维峰会(成都站),讲师议题抢先看!
  2. c语言程序设计实践指导,C语言程序设计实习指导及报告.docx
  3. 淘宝商家如何提高淘宝访客和流量?
  4. 面试中常用的英语对话
  5. 中南大学计算机模拟试题6,中南大学大学计算机基础模拟试题综述
  6. 无法打开文件XXX.lib
  7. 六、爆炸效果的产生及销毁(雷霆战机)
  8. ui设计设计软件_60秒的UI设计
  9. Melis调试方法:GDB基本用法
  10. TP---word下载(简化版)