« 上一篇: 关于Axis limits outside float precision的问题 下一篇: ______所有网志按时间排列______ »
萝卜 @ 2008-06-19 22:36

问题源于紫丁香社区MATLAB版

发信人: freemoon (yuxiang), 信区: Matlab
标  题: 如何用2个点在2个坐标系中的坐标,建立坐标系之间的变换矩阵?
发信站: 紫丁香社区 (Tue Jun 17 10:48:18 2008), 站内

如何用2个点在2个坐标系中的坐标,建立起坐标系之间的变换矩阵?
旋转矩阵R和平移矩阵T
--
帮助是树状拓扑结构,它会蔓延!

※ 来源:·紫丁香社区 http://lilacbbs.com·[FROM: 61.167.*.*]

数学模型如下建立

R*P1*k+S=P2
其中
R=[cos(a),-sin(a);sin(a),cos(a)]; % 旋转矩阵
S=[x0;y0]; % 平移项
K的缩放系数
P1=[x1;y1]; % 第一坐标系坐标
P2=[x2;y2]; % 第二坐标系坐标

程序如下:

function [R,S,K]=rotate_shift(x1,y1,x2,y2,X1,Y1,X2,Y2);
% A是旋转矩阵
% S是平移矩阵
% K是缩放系数
% (x1,y1)和(x2,y2)是第一坐标系的坐标
% (X1,Y1)和(X2,Y2)是第二坐标系的坐标
% Example:
% [R,S,K]=rotate_shift(1,2,3,4,5,6,7,8);
A = angle([X1-X2]+i*[Y1-Y2])-angle([x1-x2]+i*[y1-y2]);
R = [cos(A),-sin(A);sin(A),cos(A)];
K = abs([X1-X2]+i*[Y1-Y2])/abs([x1-x2]+i*[y1-y2]);
S = [X1;Y1]-R*[x1;y1]*K;





评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定