当前位置: 首页 > news >正文

SldWorks问题 2. 矩阵相关接口使用上的失误

问题

在计算三维点在图纸(DrawingDoc)中的位置时,就是算不对,明明就4、5行代码,怎么看都是很“哇塞”的,毫无问题的。

但结果就是不对。

那就调试一下吧,调试后发现生成的矩阵很不对劲,是个单位矩阵,很奇怪,还什么都不提示!

测试后发现:

IMathUtility类中,CreateTransform方法,传入的数组必须长16

// IMathUtility class.
// Creates a new math transform. 
System.object CreateTransform( System.object ArrayDataIn
)// Transformation matrix data:
// 
//      | a b c . n |
//      | d e f . o |
//      | g h i . p |
//      | j k l . m |
// 
// The SOLIDWORKS transformation matrix is stored as a homogeneous matrix of 16 elements, ordered as shown. The first 9 elements (a to i) are elements of a 3x3 rotational sub-matrix, the next 3 elements (j, k, l) define a translation vector, and the next 1 element (m) is a scaling factor. The last 3 elements (n, o, p) are unused in this context.
// 
// The 3x3 rotational sub-matrix represents 3 axis sets: 
// 
// row 1 for x-axis components of rotation 
// row 2 for y-axis components of rotation 
// row 3 for z-axis components of rotation 

IMathTransform

问:4x4矩阵本来就是16个元素啊,传长16数组不是很正常吗?
答:当然很正常,但是在这里不太正常。

看看SolidWorks中,矩阵的构成吧,emmm,就一个标准的矩阵。

再看看存储方式,矩阵库,一般都是列优先,少部分是行优先。

这里就不同了,它是0~8存xyz轴旋转,9~11存平移,12存缩放,13~15是不使用的。

MathTransform 可以拿到存储数组,通过属性ArrayData,长16

GetViewXFrom()方法,返回的数组长13,后三个未使用的不返回。然后我下意识就使用这个数组去创建矩阵。

可以传,不报错,结果不对,是个单位矩阵。

http://www.lryc.cn/news/456973.html

相关文章:

  • 2024十月超全大模型常见面试题(附答案)
  • Java 的数据结构整理(整合版)
  • 如何让信息学奥赛学习“边玩边学”?——趣味编程让枯燥学习变得有趣
  • 【艾思科蓝】C++游戏开发探秘:打造高性能游戏世界的钥匙
  • 企业如何做好数据安全防泄密?10个你不知道的防泄密措施
  • MySQL基本操作(1)
  • Python 如何使用 Redis 作为缓存
  • Python知识点:基于Python工具,如何使用Mediapipe进行人体姿态估计
  • 数据结构进阶:二叉搜索树_C++
  • uni-app之旅-day04-商品列表
  • 单元测试的定义
  • C语言从头学66—学习头文件 <stdio.h>(二)
  • python静默活体检测接口集成-人脸识别API-人脸认证
  • Ubuntu安装nvidia显卡驱动
  • vulnhub-Web Developer 1靶机
  • 安全帽头盔检测数据集 3类 12000张 安全帽数据集 voc yolo
  • 保姆级教程 | Adobe Illustrator调整颜色透明度
  • 深入解读DeepSort目标跟踪算法:从状态预测到运动模型
  • 24-10-2-读书笔记(二十二)-《契诃夫文集》(一)上([俄] 契诃夫 [译] 汝龙)啊!真想生活。
  • 【2024】前端学习笔记14-JavaScript常用数据类型-变量常量
  • Leecode热题100-48.旋转图像
  • 重学SpringBoot3-集成Redis(二)之注解驱动
  • 【React】入门Day04 —— 项目搭建及登录与表单校验、token 管理、路由鉴权实现
  • CMake 属性之目录属性
  • ChatGPT:引领人工智能新潮流!
  • 【银河麒麟高级服务器操作系统】安全配置基线相关分析全过程及解决方案
  • 用Python实现图片转ASCII艺术:图像处理与字符艺术的完美结合
  • 大数据-162 Apache Kylin 全量增量Cube的构建 Segment 超详细记录 多图
  • Redis-缓存过期淘汰策略
  • 如何设置LED电子显示屏的屏幕参数?