乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 221|回复: 12

赫尔默特变换

[复制链接]

9

主题

30

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
66
发表于 2018-3-19 05:51:45 | 显示全部楼层 |阅读模式
您好,
我想将变换应用于图形(从德国高卢-克鲁格到UTM)。参数为:
比例因子0.9996
旋转0.000006
位移28999941.883,-1729.851
如何构造矩阵来变换图形元素
我尝试了:
平移向量的原点
Point3d Center新建:平移向量的目标
双旋转:以弧度为单位双缩放因子*/
var矩阵=矩阵x3d。位移(新中心-旧中心)
矩阵*=Matrix3d。缩放(scaleFactor,centerNew)
矩阵*=Matrix3d。旋转(旋转,新矢量3D(0,0,1),新中心)
<div>//然后…</div<
实体。TransformBy(矩阵)

显然,这种转换是不正确的(X方向大约13公里,Y方向非常接近)。
有什么想法吗?

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2018-3-19 07:14:48 | 显示全部楼层
旋转可能是弧度吗?
此外,在乘法矩阵时,每个变换的顺序非常重要。
回复

使用道具 举报

9

主题

30

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
66
发表于 2018-3-19 08:19:15 | 显示全部楼层
旋转以弧度为单位提供。
我是这么想的,但我不确定以哪种顺序应用参数。当我做三个单独的转换(实体。TransformBy(Matrix3d.Scaling(...)),然后是 TransformBy。(Matrix3d.Rotation(...)), ...)一切都很好,但我想避免这种情况。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2018-3-19 16:06:54 | 显示全部楼层

我也是这么想的,因为当你把一个位移乘以一个标量时,所有的位移数都会乘以那个标量!
我会按照这个顺序尝试:标量/旋转/位移
如果你必须将它们分开,那么我认为你只需要先处理标量本身。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2018-3-19 16:27:41 | 显示全部楼层

只是重新考虑一下你的评论。
如果它有效,我看不出它有什么问题,并且有一些关于顺序的评论,它会更容易维护。虽然它可能_seem_技术上更优雅,但我怀疑保存的时钟周期最终会有什么真正的不同
回复

使用道具 举报

9

主题

30

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
66
发表于 2018-3-19 17:04:32 | 显示全部楼层
你当然是对的。尽管如此,我想了解
我必须做些什么
才能在一步中应用转换(我知道我有时会很烦人)。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2018-3-19 17:14:18 | 显示全部楼层

不!所有的好处
诀窍在于思考每个xform都在做什么,以及生成的数字是什么样子。例如,在centerOld(当前中心?)它会在现场稍微收缩耳鼻喉科,然后你可以使用相同的中心线旋转它,并在现场旋转它,所以我认为数字会很好。现在,您可以沿矢量将其置换为centerNew,该矢量再次仅平移(缩放)每个三维轴的编号<矩阵中每个轴的所有数字实际上都是应用于每个轴的单位向量的缩放器
回复

使用道具 举报

9

主题

30

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
66
发表于 2018-3-19 17:24:30 | 显示全部楼层
Ooookay - 我看到
我想我之前尝试过缩放*旋转*位移的组合,但我明天会再试一次 - 感谢您的耐心(不是开玩笑)。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2018-3-19 17:29:41 | 显示全部楼层
Ooookay -我明白了
我认为我以前尝试过缩放*旋转*位移的组合,但我明天会再试一次-感谢您的耐心(不是开玩笑)。

请记住使用正确的中心!(即当前的“旧”版本)
干杯。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2018-3-20 13:37:41 | 显示全部楼层
要了解真正的情况,请查看这个链接,它讨论了矩阵乘法的性质,并特别考虑了非交换性质,A*B!=B*A和结合性质(A*B)*C=A*(B*C)
现在考虑一下,你要用矩阵S、R和T来缩放、旋转、平移一个点P
将其作为3个独立的运算来运行,相当于((P*S)*R)*T,因此预先计算S*R*T的组合矩阵,然后将P乘以该矩阵也是一样的。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-5-25 07:47 , Processed in 0.336475 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表