Skip to content
  • 首页
  • 留言
  • 关于

Share the joys of programming and technology

ODA的基本操作-平移、旋转、矩阵变换

ODA的基本操作-平移、旋转、矩阵变换

2021年1月17日 liyanliang Comments 0 Comment
阅读次数: 357

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

Contents

    • 0.1 一、添加常用的头文件
  • 1 二、 矩阵变换和图形放大
  • 2 三、 平移
  • 3 四、旋转
    • 3.1 相关文章

一、添加常用的头文件

#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)); //将我们在原点画的图移到ptBase
   OdGeMatrix2d 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度,获得pt1
​
   OdGePoint2d pt0 = pt1 + OdGeVector2d(-1.0,-1.0).normalize()*dLength;//pt1沿着x的负方向和y的负方向移动dLength的长度,得到pt0
​
   pt0.transformBy(mat);
   pt1.transformBy(mat);
   pt2.transformBy(mat);  //将我们再ptBase创建的点移动到我们设定的坐标位置

相关文章

  • ObjectARX开发视频教程(C++)-创建模态对话框绘制直线ObjectARX开发视频教程(C++)-创建模态对话框绘制直线
  • 通过Spy++抓取窗口以查询对话框id通过Spy++抓取窗口以查询对话框id
  • WinDbg检查内存泄漏WinDbg检查内存泄漏
  • OpenGL模型加载-附源码OpenGL模型加载-附源码
  • Civil Designer开发-公路桥梁承载能力检算评定Civil Designer开发-公路桥梁承载能力检算评定
  • OpenGL-法线贴图(Normal Mapping)OpenGL-法线贴图(Normal Mapping)

C++
ODA

Post navigation

PREVIOUS
OpenGL实现多光源-附项目源码
NEXT
创建模态对话框绘制直线-ObjectARX开发视频

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

近期文章

  • ANR崩溃日志查看方法
  • 通过数学方法来计算short类型的变量w的低八位x和高八位
  • 3dTiles数据解析
  • Games101和Games202脑图汇总
  • LearnOpenGL脑图汇总
  • IBL计算总结
  • C++实现一个简单的语言解释器
  • OpenGL-法线贴图(Normal Mapping)
  • OpenGL-卡通着色(Cartoon)
  • OpenGL几何着色器实现贝塞尔曲线
  • WinDbg检查内存泄漏
  • OpenGL雾化效果实现-每像素雾化
  • OpenGL实现billboard效果(CPU)
  • 算法:寻找异常数字
  • OpenGL 几何着色器的应用
  • Midas XD-构件详图开发
  • Midas XD-选筋助手开发
  • Civil Designer开发-检测规范自动生成控制截面
  • Civil Designer开发-公路桥梁承载能力检算评定
  • Midas W-满堂支架快速建模助手开发

全站热点

  • C++编写的情人节小程序 (2,080)
  • 提取最小封闭区域 (1,693)
  • Modern OpenGL绘制圆柱体 (1,606)
  • OpenGL开发环境搭建-GLFW与GLAD配置 超详细 (1,459)
  • 截面特性计算程序-附源码 (1,288)
  • OpenGL绘制旋转立方体 (1,104)
  • 判断一个点是否在闭合区域内 (1,032)
  • WordPress分页插件 – WP-PageNavi的使用(替换现有脚本) (948)
  • OpenGL实现billboard效果(CPU) (864)
  • Midas W-满堂支架快速建模助手开发 (832)
  • 从DLL中动态加载一个函数:LoadLibrary和GetProcAddress的使用 (746)
  • Midas XD [错误] 右侧挡土墙的最下端深度必须小于地基的最下端深度 (708)
  • 两跨连续梁影响线绘制-附源码 (685)
  • 土木想往土木软件开发方向发展,应该如何准备 (679)
  • OpenGL几何着色器实现贝塞尔曲线 (663)
  • 通过Spy++抓取窗口以查询对话框id (612)
  • 使用ODA数据库出现 “ODA_ASSUME”: 找不到标识符的错误 (547)
  • #pragma message 编译时提示信息 (527)
  • OpenGL雾化效果实现-每像素雾化 (507)
  • midas XD2020的开发 (474)

分类

  • C# (3)
  • C++ (19)
  • GIS (1)
  • MFC (3)
  • ObjectARX (2)
  • OpenGL (11)
  • Revit开发 (1)
  • 学习笔记 (2)
  • 岩土 (2)
  • 算法 (1)
  • 结构设计 (7)
  • 职场生涯 (1)
  • 计算几何 (3)

归档

  • 2024 年 12 月 (1)
  • 2024 年 10 月 (1)
  • 2024 年 9 月 (1)
  • 2023 年 3 月 (2)
  • 2022 年 10 月 (1)
  • 2022 年 3 月 (1)
  • 2022 年 2 月 (1)
  • 2022 年 1 月 (5)
  • 2021 年 11 月 (7)
  • 2021 年 6 月 (3)
  • 2021 年 5 月 (2)
  • 2021 年 3 月 (2)
  • 2021 年 2 月 (8)
  • 2021 年 1 月 (18)

标签

3dtiles anr Bezier Curves BillBoard C++ CDN CivilDesigner DLL EasyX fog glTF MFC Midas W Midas XD NormalMapping ObjectARX ODA OpenGL OpenXML Open XML PBR revit WinDbg 基坑设计 影响线 截面特性 桥梁 桥梁检测 桥梁设计 算法 计算几何 设计模式

书签

  • 李燕良的CSDN
  • 崔济东的博客
  • C++爱好者博客
  • 陈学伟的博客
  • 贾苏的博客
  • 陈睦锋的博客
  • 孙勇的博客

统计

  • 0
  • 227
  • 101
  • 304
  • 127
  • 267,125
  • 76,992

实时访问地域

© 2025   liyanliang.net Copyright. All Rights Reserved.