【C++】ODA的基本操作-平移、旋转、矩阵变换
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的基本操作-平移、旋转、矩阵变换相关推荐
- Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊)
Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊) 目录 Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊) 前言 简单的平移.旋转和放缩 其他元素的一些基本使用 qm ...
- 20P46 Premiere预设800种干扰缩放平移旋转分割拉伸全景透视扭曲炫光视频无缝转场
20P46 Premiere预设800种干扰缩放平移旋转分割拉伸全景透视扭曲炫光视频无缝转场 模版信息: 适用软件:Premiere Pro CC 2015.3 或更高版本 使用插件:无需外置插件 分 ...
- 三维空间中的几何变换-平移旋转缩放
前言 前段时间由于项目需要,深入学习了下图形几何变换,主要是绕任意轴旋转部分(其他的已有一定基础),现记录学习笔记. 文章内容部分引用并参考了下面的博客: http://netclass.csu.ed ...
- Unity 触屏手势控制Camera平移旋转缩放
Unity 触屏手势控制Camera平移旋转缩放 实现思路 单点触屏,位移增量控制相机平移: 两点触屏,两点位移控制相机前后移动(缩放):两点中一点不位移控制相机绕点旋转: 实现需要的API Touc ...
- flutter Transform 矩阵变换(平移旋转缩放)
Transform其子Widget绘制时外面包着矩阵变换(transformation),通过它可以实现各种矩阵操作. 1.widget平移 效果图 2.旋转(rotate) 效果图: 3.缩放 Tr ...
- 三维坐标 偏转_三维坐标变换原理-平移, 旋转, 缩放
给定一个二维点(x, y),那么形如(kx, ky, k)的所有三元组就都是等价的,它们就是这个点的齐次坐标(homogeneous).齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示,是指 ...
- OpenCV——图像的平移旋转
1.学习图像数据格式Mat 像素就是把图形分割成很多大小相等的小正方形,其中每一个都是一个像素.我们常见的800*600的图形,800代表宽度,600代表高度. 灰度图像就是黑白灰,只有这三种颜色,其 ...
- python处理svg 平移 旋转_d3.js封装文本实现自动换行和旋转平移等功能
我们下面话不多说,本文主要介绍的是利用D3.js封装文本实现自动换行功能的步骤,下面来一起看看吧. 一.引用 multext.js 文件 multext.js function appendMulti ...
- python处理svg 平移 旋转_svg rotate 怎么转化平移和旋转两个参数。
问题描述 现在我要转化一下svg的rotate算出平移和旋转角度 问题出现的环境背景及自己尝试过哪些方法 function rotate(p1,p2,r){var x=p1.x-p2.x; var y ...
最新文章
- python自学攻略-Python自学攻略
- IOS - 快速入门
- Silverlight WCF 上传实现
- java 定时器delay_技术贴-java 定时器
- boost::weak_ptr和enable_shared_from_this
- 计算机表格中需要乘法求和,《怎么在Excel表格里面使用乘法求和》
- Eclipse中集成SVN
- oracle linux 下载地址
- 电路交换、报文交换和分组交换的区别
- 实现winfrom进度条及进度信息提示,winfrom程序假死处理
- [Matlab]中solve函数与subs函数的使用方法
- mysql error 1114_ERROR 1114 (HY000): The table is full
- 联想 ThinkPadE480无法调节亮度
- 【Vue学习笔记】尚硅谷Vue2.0+Vue3.0全套教程丨vue.js从入门到精通
- windows10下安装MSYS2+MinGW64
- BZOJ 4589 Hard Nim
- k米评分容易得高分的歌_下线“交友陪玩”!全民K歌回应涉黄被罚:上月已完成整改,强化审核...
- 手把手教你制作一个文件加密工具
- 根据证券代码判断交易市场,补充为带wind后缀的代码
- 境界死神激斗怎么在电脑上玩 境界死神激斗电脑版玩法教程