点的坐标系变换原理与代码示例详解
创作时间:
作者:
@小白创作中心
点的坐标系变换原理与代码示例详解
引用
CSDN
1.
https://blog.csdn.net/qq_35971623/article/details/138267205
坐标系变换是计算机视觉、机器人学等领域中的一个基本概念,它涉及到如何将一个坐标系中的点转换到另一个坐标系中。本文将详细介绍点的坐标系变换原理,并通过具体的代码示例帮助读者理解这一过程。
变换矩阵
变换矩阵在坐标系变换中扮演着核心角色。它包含了两个主要部分:旋转矩阵和平移矩阵。
旋转矩阵:旋转矩阵描述了两个坐标系之间的旋转关系。具体来说,旋转矩阵的列向量表示旋转后的新坐标轴在原坐标系中的投影。例如,第一列向量表示旋转后的新X轴在原坐标系X、Y、Z轴方向上的投影。
平移矩阵:平移矩阵描述了两个坐标系原点之间的位置关系。它表示一个坐标系的原点在另一个坐标系中的位置。
旋转矩阵的性质
旋转矩阵具有以下重要性质:
- 列向量是单位向量:每个列向量的长度为1,表示旋转后的坐标轴方向。
- 列向量两两正交:任意两个列向量之间的点积为0,表示旋转后的坐标轴相互垂直。
从局部坐标系到全局坐标系
公式推导
代码示例
import numpy as np
def transform_to_global(local_point, rotation_matrix, translation_vector):
# 将局部坐标系中的点转换到全局坐标系中
global_point = np.dot(rotation_matrix, local_point) + translation_vector
return global_point
# 示例:将局部坐标系(车辆坐标系)上的点(局部规划路径终点*10)转换到全局坐标系上(蓝色点)
local_point = np.array([10, 0, 0]) # 局部坐标系中的点
rotation_matrix = np.array([[np.cos(np.pi/4), -np.sin(np.pi/4), 0],
[np.sin(np.pi/4), np.cos(np.pi/4), 0],
[0, 0, 1]]) # 旋转矩阵
translation_vector = np.array([5, 5, 0]) # 平移向量
global_point = transform_to_global(local_point, rotation_matrix, translation_vector)
print("Global point:", global_point)
从全局坐标系到局部坐标系
要将全局坐标系中的点转换回局部坐标系,可以使用逆变换矩阵。逆变换矩阵由旋转矩阵的转置和平移向量的相反数组成。
def transform_to_local(global_point, rotation_matrix, translation_vector):
# 将全局坐标系中的点转换回局部坐标系
local_point = np.dot(rotation_matrix.T, global_point - translation_vector)
return local_point
# 示例:将全局坐标系中的点转换回局部坐标系
global_point = np.array([15, 5, 0]) # 全局坐标系中的点
rotation_matrix = np.array([[np.cos(np.pi/4), -np.sin(np.pi/4), 0],
[np.sin(np.pi/4), np.cos(np.pi/4), 0],
[0, 0, 1]]) # 旋转矩阵
translation_vector = np.array([5, 5, 0]) # 平移向量
local_point = transform_to_local(global_point, rotation_matrix, translation_vector)
print("Local point:", local_point)
通过上述代码示例,我们可以清晰地看到如何使用变换矩阵将点在不同坐标系之间进行转换。这对于机器人导航、计算机视觉等领域的应用具有重要意义。
热门推荐
梦到股票大涨
高丽参和红参的区别是什么?红参好还是高丽参好?
量化高频交易"收割"散户的几种方式!
身份证丢失后的处理步骤与注意事项,教你轻松应对烦恼
“国漫热”邂逅传统钩编技艺 哪吒敖丙玩偶跃然“指”上
樊登如何营造团队氛围
哪种运动健脾胃效果好
上了年纪,5种肠道异常别大意,这项检查是发现肠癌的“金标准”
普通人骑自行车的速率大概是多少?
芥兰的营养价值及功效与禁忌
教你如何制作口感鲜美的粤式白灼芥兰(传统手艺)
吃货往这看!山东一百道经典鲁菜、百道网红小吃、百条美食街…你知道多少?
污水处理为什么用石灰科普(石灰在含磷废水处理中有什么作用?)
心脏经常刺痛痛的不能动,不能呼吸是怎么回事
男生留长发应该要怎么保养 有哪些注意事项
房屋租赁纠纷处理指南:拖欠房租、提前解约等问题全解析
租户不按时交房租怎么办?三种催缴方式全解析
吴越的成名史,你想知道吗?
孕妇手肿了是什么原因引起的
心脏听诊内容是什么
成都理工大学属于什么水平 成都理工大学哪些专业比较好
胆囊结石用什么药物
1TB固态硬盘分区指南:分区利弊分析及实用教程
八字命理中“缺金缺土”的命格特征及其影响是什么
端粒技术:癌细胞无限分裂的关键
舌尖上的历史:从唐朝胡饼到明清满汉全席,品味千年美食文化!
咖啡为什么可以消肿
从N出发,构建高效创新生态体系
蜈支洲岛深度游玩攻略:潜水胜地全解析及行程安排
谷雨的寓意和象征