找回密码
 注册
关于网站域名变更的通知
查看: 486|回复: 1
打印 上一主题 下一主题

基于Matlab的点到任意直线的投影点坐标的实现

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-6-16 15:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
【写在前面】因为图像坐标系和我们平时用的直角坐标系还是有不同的。因此在求点到直线投影点坐标的时候,不敢随便把直线用点斜式表示。为此采用向量的方法求投影点。7 a" m- j; R  k% K* r: e, S- B1 s

5 B1 d$ N1 q4 S8 W, }" D' _" x9 }) M' Z  `( {
代码实现
7 @5 n8 u6 K- a" h$ l  O7 H
4 l$ D/ j+ Q; `* R8 B3 E6 Q7 rfunction proj_point = ProjPoint( point,line_p )
6 C. I+ E2 \  W' y7 a/ z9 Lx1 = line_p(1);
1 @1 J: v- m- I4 B) {. r+ Z! ?y1 = line_p(2);- e# L& }% ]' C
x2 = line_p(3);
0 \. G; |& s% D# |+ v! S- Sy2 = line_p(4);
. g/ \( P6 O1 a4 j  v0 y6 e" F% C- [, ~+ p3 H
x3 = point(1);  r* H  c5 P  Z# \5 O
y3 = point(2);
2 e6 Y! C" r+ r0 r. e
; F! V4 s5 d( t2 n/ o/ \. |* F- Hyk = ((x3-x2)*(x1-x2)*(y1-y2) + y3*(y1-y2)^2 + y2*(x1-x2)^2) / (norm([x1-x2,y1-y2])^2);
6 N$ t5 F6 P  n! \( _% l; B+ D4 [0 wxk = ((x1-x2)*x2*(y1-y2) + (x1-x2)*(x1-x2)*(yk-y2)) / ((x1-x2)*(y1-y2));
1 d% H3 W) l+ @& J3 [! l# j- `; f4 r4 d0 ?2 }. p
- ?+ Q) n, P* t9 w* \+ e
if x1 == x2
+ A; G8 G+ M4 }( g  r/ \    xk = x1;
9 q- j4 h9 Y5 i' Send5 M; }2 a! u8 F- C, i# G: n

" w# U8 C9 I2 [, T4 `2 c. ?if y1 == y2
5 V& p- ]+ j' p/ X! z    xk = x3;- D$ z* D! l- R! o/ p: ^* @$ a. u
end
" V6 M# X, V. k, i7 F1 y5 W: E: [, |, \, q
proj_point = [xk,yk];
0 |4 Y5 H  C4 h) n, y( `7 Q
" O' R! P* ]: `: k/ q$ m" T: aend
( R! X# v4 m8 w+ c2 K& h8 p/ B, l2 r( r/ Y
6 l" l3 I( Y8 ^+ L" E: f

, ~2 N( b1 f* ^% U. `) ~0 ?) r( i* Z- [( O2 C8 _' w; I

该用户从未签到

2#
发表于 2020-6-16 16:21 | 只看该作者
这个代码详细
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 21:30 , Processed in 0.156250 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表